2

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

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

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

有什么需要吗?

4

1 回答 1

7

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

我不这么认为。如您的脚本所见window,通常是.windowiframe

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

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

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

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

于 2010-03-15T20:10:17.473 回答