gpt4 book ai didi

javascript - 在 IFrame 中覆盖 window.open

转载 作者:太空宇宙 更新时间:2023-11-04 13:24:04 24 4
gpt4 key购买 nike

我使用的 IFrame 包含不同域(我无法控制)上的远程页面,它有时会尝试使用 window.open 弹出窗口。

我不想弹出窗口 - 我想使用第一个 IFrame 尝试打开的 URL 将另一个 IFrame 动态添加到页面。

有没有办法覆盖 IFrame 的 window.open 以便我能够“捕获”它尝试弹出的 URL?

我试过:

var myFrame = document.getElementById("ifrm"); // 'ifrm' is the iframe's ID
myFrame.contentWindow.open = function (url, name, features) {
alert(url);
};

但它不起作用(没有警报,iframe 仍然试图弹出新窗口)...

有什么想法吗?

最佳答案

尝试:

function bindings(newDoc){
try
{
newDoc.contentWindow.window.open = function (url, name, features,
replace) {
alert(url);
};
}
catch( e )
{
console.log(e.message);
}
}

在调用 iFrame 时,使用 onload 事件:

<iframe onload="bindings(this)" ... />

它抛出错误:

Permission denied to access property 'open' in Firefox

LOG: Permission denied in Internet Explorer

显然 Dan F 是对的。UA 将拒绝访问通过 iframe 加载的远程(跨域)文档。

关于javascript - 在 IFrame 中覆盖 window.open,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11706187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com