我有简单的代码,可以创建弹出窗口并添加文本,这样可以正常工作:
<!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。
答案 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>