gpt4 book ai didi

JavaScript 以编程方式强制关闭选项卡?

转载 作者:行者123 更新时间:2023-11-28 17:33:26 25 4
gpt4 key购买 nike

我遇到了一些网站无法以编程方式关闭的问题:

window.close()

失败:

web/Stores.war/RAPIDStorefrontAssetStore/AJAXUserInterface/javascript/FDBrowse.js:301 Uncaught TypeError: Cannot read property 'style' of null
at close (web/Stores.war/RAPIDStorefrontAssetStore/AJAXUserInterface/javascript/FDBrowse.js:301)
at <anonymous>:1:8

违规网站是:https://www.1800flowers.com/about-us-employment-opportunities?utm_medium=direct&utm_source=1800flowerscom尽管这也发生在其他人身上。

如何强制关闭? close 方法中正在运行的内容失败了?一些调查显示文档无法在网站尝试运行的脚本中找到某些文档元素,但如何防止它在关闭之前运行任何内容?我尝试将 on_X 方法设置为 null 但没有成功...

最佳答案

您面临的问题是该网站使用其他函数覆盖了默认的 window.close 方法。

要解决此问题,您应该能够从母版页中 window.open() 返回的 Window 对象中调用原始 Window.close 方法。

var popup = window.open('...');
popup.close(); // should be the original Window.close method

但是,如果出于某种原因,您绝对希望从目标页面内部关闭此方法,那么您可以从 iframe 的contentWindow,并在损坏的页面上调用此方法。

function close(){
console.log("It's bad to declare on the global scope");
}
console.log(window.close.toString());
window.close(); // our function

var iframe = document.createElement('iframe');
iframe.style.cssText = 'opacity:0;position:absolute';
iframe.src = 'about:blank';
iframe.onload = function() {
console.log(iframe.contentWindow.close.toString());
// you could call it like this
iframe.contentWindow.close.call(window);
// even if it will not work here because we didn't open the page programmatically
document.body.removeChild(iframe);
};
document.body.appendChild(iframe);

这里是a live plnkr 更好地演示上面的代码。

关于JavaScript 以编程方式强制关闭选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49724259/

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