Javascript 从iframe打开窗口

Javascript 从iframe打开窗口,javascript,iframe,window.open,Javascript,Iframe,Window.open,情况就是这样。我试图提供一种服务,有人在他们的网站上嵌入一个带有表单的iframe。最后,当一个ajax请求再次出现时,我想弹出一个新窗口,其中包含一条感谢信。window.open不起作用,我猜是因为window对象属于嵌入它的页面,而不是iframe,然后会被视为跨站点脚本。还有别的办法吗 我的一个想法是,我可以在iframe中创建带有target=“\u new”的链接,单击该链接实际上会弹出另一个窗口。也许我可以创建这个链接并用javascript“单击”/“触发它” 我可以控制用户嵌入

情况就是这样。我试图提供一种服务,有人在他们的网站上嵌入一个带有表单的iframe。最后,当一个ajax请求再次出现时,我想弹出一个新窗口,其中包含一条感谢信。window.open不起作用,我猜是因为window对象属于嵌入它的页面,而不是iframe,然后会被视为跨站点脚本。还有别的办法吗

我的一个想法是,我可以在iframe中创建带有target=“\u new”的链接,单击该链接实际上会弹出另一个窗口。也许我可以创建这个链接并用javascript“单击”/“触发它”

我可以控制用户嵌入的内容,因此我也可以在其中包含脚本,但代码越少,显然效果越好

有需要吗

open不起作用,我猜是因为window对象属于嵌入它的页面

我不这么认为<脚本看到的代码>窗口通常是
iframe
中文档的
窗口
对象

更典型的是,XMLHttpRequest完成时的
窗口.open
将被浏览器内置的弹出窗口阻止程序阻止。它们通常只允许直接响应用户交互而打开新窗口(通常在
onclick
事件处理程序中)

也许我可以创建这个链接并用javascript“单击”/“触发它”

不,否则每个人都会这样做以避开拦截器


如果您正在启动一个XHR,并且您知道将来需要一个弹出窗口,那么您必须现在打开它,并在XHR返回之前放入一些填充内容,此时您可以更新其内容。

您可能被弹出窗口阻止程序阻止。IIRC弹出窗口被阻止是因为它是由XHR onreadystatechange事件触发的,而不是由用户触发的事件触发的。浏览器的设计目的是阻止出现非用户触发的弹出窗口。