jquery脚本标记的意外标记ILLEGAL

时间:2015-07-21 15:12:10

标签: javascript jquery html

我有简单的代码,可以创建弹出窗口并添加文本,这样可以正常工作:

<!DOCTYPE html><html><body><script src='./js/jquery.min.js'></script><script>var blade = window.open("", "BLADE", "width=500, height=500, scrollbars=yes, resizable=yes");$(blade.document.body).html("<!DOCTYPE html><html><body>this is my 'content'</body></html>");</script></body></html>

问题是当我向child(new html)添加一行来加载jquery时:

<!DOCTYPE html><html><body><script src='./js/jquery.min.js'></script><script>var blade = window.open("", "BLADE", "width=500, height=500, scrollbars=yes, resizable=yes");$(blade.document.body).html("<!DOCTYPE html><html><body><script src='./js/jquery.min.js'></script>this is my 'content'</body></html>");</script></body></html>

然后弹出窗口没有创建,在主页面上我可以看到:this is my 'content'"); 检查js控制台时,我在这个例子中也可以看到:Uncaught SyntaxError: Unexpected token ILLEGAL

我很感激帮助我如何在弹出的html窗口代码中添加jquery。

3 个答案:

答案 0 :(得分:2)

这是关闭外部脚本块的字符串中</script>的经典案例。

></scr" + "ipt>th
<!DOCTYPE html>
<html>    
<body>
  <script src='./js/jquery.min.js'></script>
  <script>
    var blade = window.open("", "BLADE", "width=500, height=500, scrollbars=yes, resizable=yes");
    $(blade.document.body).html("<!DOCTYPE html><html><body><script src='./js/jquery.min.js'></sc" + "ript>this is my 'content'</body></html>");
  </script>
</body>
</html>

答案 1 :(得分:1)

您需要转义结束脚本标记,如下所示:

$(blade.document.body).html("<!DOCTYPE html><html><body><script src='./js/jquery.min.js'><\/script>this is my 'content'</body></html>");

</script><\/script>

此外,您的追加中不需要"<!DOCTYPE html><html><body>",因为它的目标节点已经body,因此它毫无意义!

答案 2 :(得分:0)

看起来您的JS文件的链接可能无法正常工作。除非你的'js'文件夹在名为'。'的文件夹中,否则不应该有'./',我怀疑。

仔细检查您是否链接到正确的文件,甚至尝试链接到它的托管版本(下面)只是为了确保问题。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>