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

时间:2015-02-15 20:09:05

标签: javascript jquery html insert window

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

意思是如果我写:

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

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

问题 - 如果我对新打开的窗口执行相同操作,则不起作用。即脚本未被执行。为什么呢?

2 个答案:

答案 0 :(得分:3)

如果目标页面和主页面托管在相同的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>");

答案 1 :(得分:0)

我以不同的方式做事。 Ajax返回一个包含$(document).ready的页面,其中包含所有相关代码。 然后我使用.html(data)在ajax函数中加载从AJAX返回的代码片段,jquery代码始终有效。 如果我没有错,那么你的问题与DOM相关的问题还没有在新窗口中准备就绪。