使用jquery html()将脚本插入到新窗口中

insert script to new window with jquery html()

本文关键字:新窗口 窗口 脚本 jquery html 使用 插入      更新时间:2023-11-07

我通常使用jQuery html()方法将ajax请求返回的html+脚本插入到文档中,该方法也执行脚本。

意味着如果我写:

$(document.body).html("<script>alert()</"+"script>");

它将执行脚本。(+仅用于浏览器,因为在字符串中写入</script>不起作用。)

问题是,如果我对新打开的窗口也这样做,那就不起作用了。即不执行脚本。为什么?

如果目标页面和主页位于同一URL和协议中,则可以在打开的窗口上执行任何脚本。(我假设它是用Window.open()函数打开的)

保存对打开窗口的引用。。。

var popup = window.open("/page2.html");

并使用它来访问其文档:

$(popup.document.body).append("<script>alert()</script>");

如果你也在打开的窗口中导入jQuery,你也可以调用

popup.$(popup.document.body).append("<script>alert()</script>");

我过去用不同的方式来做。Ajax返回一个包含$(document).ready和所有相关代码的页面。然后,我用.html(data)将AJAX返回的代码加载到AJAX函数中,jquery代码始终有效。如果我没有错的话,您的问题与DOM在新窗口中没有准备好有关。