我有一个弹出窗口,使用从控制台运行的代码打开:
// Find all the "Activate" buttons on the page
var offerButtons = Array.from(document.getElementsByClassName("AvailableDealTile2__activation-status___jsguf")).filter(span => span.textContent === "Activate");
var index;
for (index = 0; index < offerButtons.length; ++index) {
console.log("Clicking Activate button");
offerButtons[index].click();
// Wait 2seconds to be nice to WF servers :)
await new Promise(r => setTimeout(r, 2000));
}
console.log("All done. Refresh and try again.");
如何关闭 for 循环中的弹出窗口?
我尝试了以下方法:
var daddy = window.self;
daddy.opener = window.self;
daddy.close();
但是没有成功。
您没有显示实际打开新窗口的代码,但您需要为该返回值分配一个变量(这将是对新窗口本身的引用)。然后您可以通过对该引用调用
.close
来关闭窗口。
这是一个示例(由于沙箱,下面的代码片段在 SO 中不起作用,但如果您尝试一下here,它会起作用):
let newWindow = null;
document.querySelector("#open").addEventListener("click", function(){
newWindow = window.open("https://example.com");
});
document.querySelector("#close").addEventListener("click", function(){
newWindow.close();
});
<button id="open" type="button">Open Window</button>
<button id="close" type="button">Close Window</button>