Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery html()将脚本插入新窗口_Javascript_Jquery_Html_Insert_Window - Fatal编程技术网

Javascript 使用jquery 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.未执行脚本。为什么?我过去常常用不同

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

意味着如果我写:

$(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响应中获得的内容已经在当前窗口中使用(并且正在工作)。我正在尝试在我的站点中添加一个选项,以便在新窗口中查看相同的内容。