我通常使用 jQuery html() 方法将 ajax 请求返回的 html+脚本插入到文档中,该方法也会执行脚本。
意味着如果我写:
$(document.body).html("<script>alert()</"+"script>");
它将执行脚本。
(+ 仅适用于浏览器,因为在字符串中写入 </script>
不起作用。)
问题 - 如果我对一个新打开的窗口做同样的事情,它不起作用。即不执行脚本。为什么?
最佳答案
如果目标页面和主页面托管在相同的 URL 和协议(protocol)中,您可以在打开的窗口上执行任何脚本。 (我假设它是使用 Window.open() 函数打开的)
保存对打开窗口的引用...
var popup = window.open("/page2.html");
并使用它来访问其文档:
$(popup.document.body).append("<script>alert()</script>");
如果您也在打开的窗口中导入 jQuery,您也可以调用
popup.$(popup.document.body).append("<script>alert()</script>");
关于javascript - 使用 jquery html() 将脚本插入到新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28530579/