Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 文档写入会产生奇怪的输出_Javascript - Fatal编程技术网

Javascript 文档写入会产生奇怪的输出

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

我正在编写一个脚本来检测jQuery,如果它不存在,那么插入Google CDN版本和本地回退(不要问为什么…这不是我的主意),问题是当我尝试执行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(“”));
输出应达到:

<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(“”)