情况是这样的。我正在尝试提供一项服务,让某人在他们的网站上嵌入带有表单的 iframe。最后,当再次出现 ajax 请求时,我想弹出一个新窗口,其中包含感谢信。 window.open 不起作用,我的猜测是因为 window 对象属于嵌入它的页面而不是 iframe,然后将被视为跨站点脚本。还有其他方法吗?
我的想法是,我可以在我的 iframe 中创建带有 target="_new"的链接,然后单击它实际上会弹出另一个窗口。也许我可以创建此链接并使用 javascript“单击”/触发它?
我确实可以控制用户嵌入的内容,因此我也可以在那里包含一个脚本,但那里的代码越少,显然越好。
有什么要求吗?
最佳答案
window.open does not work and my guess is because the window object belongs to the page that embeds it
我不这么认为。脚本看到的 window
通常是 iframe
中文档的 window
对象。
更典型的是,XMLHttpRequest 完成时的 window.open
将被浏览器的内置弹出窗口阻止程序阻止。它们通常只允许打开新窗口以直接响应用户交互(通常在 onclick
事件处理程序中)。
Maybe I could create this link and "click"/trigger it with javascript?
不,否则每个人都会这样做来规避拦截器!
如果您正在启动 XHR,并且您知道将来需要弹出窗口,则必须现在打开它并放入一些填充内容,直到 XHR 返回,此时您可以更新其内容。
关于javascript - 从 iframe 打开窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2450079/