Javascript 文档写入会产生奇怪的输出
我正在编写一个脚本来检测jQuery,如果它不存在,那么插入Google CDN版本和本地回退(不要问为什么…这不是我的主意),问题是当我尝试执行document.write时,我会得到一个奇怪的输出Javascript 文档写入会产生奇怪的输出,javascript,Javascript,我正在编写一个脚本来检测jQuery,如果它不存在,那么插入Google CDN版本和本地回退(不要问为什么…这不是我的主意),问题是当我尝试执行document.write时,我会得到一个奇怪的输出 document.write("<script>window.jQuery || document.write('<script src=\"js/jquery.v1.9.1.js\"><\/script>')</script>"); docume
document.write("<script>window.jQuery || document.write('<script src=\"js/jquery.v1.9.1.js\"><\/script>')</script>");
document.write(“window.jQuery | | document.write(“”));
输出应达到:
<script>window.jQuery || document.write('<script src="js/jquery.v1.9.1.js"></script>')</script>
window.jQuery | | document.write(“”)
但问题是:
<script>window.jQuery || document.write('<script src="js/jquery.v1.9.1.js"></script>"')"
window.jQuery | | document.write(“”)”
我一辈子都搞不清楚到底出了什么问题试试这个
document.write("<script>window.jQuery || document.write('<script src=\"js/jquery.v1.9.1.js\"/>')<\/script>");
document.write(“window.jQuery | | document.write(“”));
试试这个
document.write("<script>window.jQuery || document.write('<script src=\"js/jquery.v1.9.1.js\"/>')<\/script>");
document.write(“window.jQuery | | document.write(“”));
基本上,当document.write打印出来时
<script>window.jQuery || document.write('<script src=\"js/jquery.v1.9.1.js\"></script>')</script>
window.jQuery | | document.write(“”)
第一个
被解析为脚本的实际结尾标记,即使它位于字符串内部,结果类似于
<script>
window.jQuery || document.write('<script src=\"js/jquery.v1.9.1.js\">
</script>
')
</script>
window.jQuery | | document.write('
')
字符串没有结束(未终止的字符串文字),因为它的结束单引号现在位于脚本之外,并且还有一个悬空的脚本结束标记。要阻止这种情况发生,只需疯狂地避开字符串中的脚本标记,尤其是字符串中的字符串。下面是一个工作示例
document.write("<script>window.jQuery || document.write('<script src=\"js/jquery.v1.9.1.js\"><\\\/script>')<\/script>");
document.write(“window.jQuery | | document.write(“”));
基本上,当document.write打印出来时
<script>window.jQuery || document.write('<script src=\"js/jquery.v1.9.1.js\"></script>')</script>
window.jQuery | | document.write(“”)
第一个
被解析为脚本的实际结尾标记,即使它位于字符串内部,结果类似于
<script>
window.jQuery || document.write('<script src=\"js/jquery.v1.9.1.js\">
</script>
')
</script>
window.jQuery | | document.write('
')
字符串没有结束(未终止的字符串文字),因为它的结束单引号现在位于脚本之外,并且还有一个悬空的脚本结束标记。要阻止这种情况发生,只需疯狂地避开字符串中的脚本标记,尤其是字符串中的字符串。下面是一个工作示例
document.write("<script>window.jQuery || document.write('<script src=\"js/jquery.v1.9.1.js\"><\\\/script>')<\/script>");
document.write(“window.jQuery | | document.write(“”));
这是因为字符串中的
与开头的
元素的结尾匹配。请参见为什么不这样做:if(!window.jQuery)document.write(“”)
这是因为字符串中的
与开头的
元素的结尾匹配。请参见为什么不这样做:if(!window.jQuery)document.write(“”)代码>