Javascript 使用jquery html()将脚本插入新窗口
我通常使用jQueryHTML()方法将ajax请求返回的html+脚本插入到文档中,该方法也会执行脚本 意味着如果我写:Javascript 使用jquery html()将脚本插入新窗口,javascript,jquery,html,insert,window,Javascript,Jquery,Html,Insert,Window,我通常使用jQueryHTML()方法将ajax请求返回的html+脚本插入到文档中,该方法也会执行脚本 意味着如果我写: $(document.body).html("<script>alert()</"+"script>"); $(document.body).html(“alert()”); 它将执行脚本。 (+仅用于浏览器,因为在字符串中写入不起作用。) 问题是,如果我对一个新打开的窗口做同样的操作,它将不起作用。i、 e.未执行脚本。为什么?我过去常常用不同
$(document.body).html("<script>alert()</"+"script>");
$(document.body).html(“alert()”);
它将执行脚本。
(+仅用于浏览器,因为在字符串中写入
不起作用。)
问题是,如果我对一个新打开的窗口做同样的操作,它将不起作用。i、 e.未执行脚本。为什么?我过去常常用不同的方式做。Ajax返回一个包含
$(document).ready
和所有相关代码的页面。
然后我用.html(data)
将从AJAX返回的代码加载到AJAX函数中,jquery代码始终有效。
如果我没有弄错,您的问题与新窗口中的DOM未就绪有关。如果目标页面和主页位于相同的URL和协议中,则可以在打开的窗口上执行任何脚本。(我假设它是使用函数打开的) 保存对已打开窗口的引用
var popup = window.open("/page2.html");
并使用它访问其文档:
$(popup.document.body).append("<script>alert()</script>");
$(popup.document.body).append(“alert()”);
如果要在打开的窗口中导入jQuery,也可以调用
popup.$(popup.document.body).append("<script>alert()</script>");
popup.$(popup.document.body).append(“alert()”);
新窗口是否使用与主窗口相同的URL打开?例:两者都是为了…你所说的“新打开的窗口”是什么意思?新窗口显然在同一个域中,否则我无法在其中插入新的html(顺便说一句,这是可行的,只有脚本不会执行)。实际上,它可能是一个“关于:空白”页面。我使用window.open()函数。我做了一些非常类似的事情,但它不起作用。我想我明白了。jQuery似乎运行脚本,但在错误窗口的上下文中,即它是父窗口的上下文,而不是脚本实际插入的新窗口。如果您也在打开的页面中导入jQuery,则可以调用:popup.$()
。它将在打开的窗口中调用jQuery实例问题是,我从ajax响应中获得的内容已经在当前窗口中使用(并且正在工作)。我正在尝试在我的站点中添加一个选项,以便在新窗口中查看相同的内容。