就是这种情况。我正在尝试提供一项服务,其中有人在其网站上嵌入了iframe,其中包含一个表单。最后,当ajax请求再次出现时,我想弹出一个带有感谢信的新窗口。 window.open不起作用,我的猜测是因为window对象属于嵌入它而不是iframe的页面,因此会被视为跨站点脚本。还有另一种方法吗?
我的想法是,我可以在我的iframe中创建与target =“_ new”的链接,然后点击它实际上会弹出另一个窗口。也许我可以创建这个链接并用javascript“点击”/触发它?
我可以控制用户嵌入的内容,因此我可能也会在其中包含一个脚本,但代码越少,显然就越好。
任何需要?
答案 0 :(得分:7)
window.open不起作用,我的猜测是因为窗口对象属于嵌入它的页面
我不这么认为。您的脚本看到的window
通常是window
内文档的iframe
对象。
更典型的是,XMLHttpRequest完成的window.open
将被浏览器的内置弹出窗口阻止程序阻止。它们通常只允许在直接响应用户交互时打开新窗口(通常在onclick
事件处理程序中)。
也许我可以创建此链接并使用javascript“点击”/触发它?
不,否则每个人都会这样做以规避阻截者!
如果您正在开始使用XHR并且您知道将来需要弹出窗口,则必须立即打开并添加一些填充内容,直到XHR返回,此时您可以更新其内容。