从iframe打开窗口

时间:2010-03-15 20:00:02

标签: javascript iframe window.open

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

我的想法是,我可以在我的iframe中创建与target =“_ new”的链接,然后点击它实际上会弹出另一个窗口。也许我可以创建这个链接并用javascript“点击”/触发它?

我可以控制用户嵌入的内容,因此我可能也会在其中包含一个脚本,但代码越少,显然就越好。

任何需要?

1 个答案:

答案 0 :(得分:7)

  

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

我不这么认为。您的脚本看到的window通常是window内文档的iframe对象。

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

  

也许我可以创建此链接并使用javascript“点击”/触发它?

不,否则每个人都会这样做以规避阻截者!

如果您正在开始使用XHR并且您知道将来需要弹出窗口,则必须立即打开并添加一些填充内容,直到XHR返回,此时您可以更新其内容。