javascript - 从 iframe 打开窗口

标签 javascript iframe window.open

情况是这样的。我正在尝试提供一项服务,让某人在他们的网站上嵌入带有表单的 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/

相关文章:

javascript - 如何使用 JQuery 追加 ajax 成功响应后聚焦到 div

javascript - 如何在 iframe 内打开弹出窗口?

javascript - 根据内容调整 SVG 元素的大小

html - 如何让 iframe 中的 YouTube 视频全屏显示?

javascript - 通过 getElementById 或其他技术从 iFrame 查找子元素?

html - 如何使用 iframe 在街景模式下嵌入 Google map ?

javascript - 在 Chrome 中使用 setTimeout 和 showModalDialog 会阻止选项卡

javascript - setTimeout 到 window.open 和 close,在同一个窗口上?

Javascript 在另一个函数中使用值

javascript - 切换到另一个选项卡时如何停止滚动滑动?