仅在函数完成运行后使用 window.close() 关闭浏览器选项卡
closing a browser tab with window.close() only after function finishes runing
我用 Tampermonkey 注入了以下函数(更大代码段的一部分)
document.addEventListener("keydown", function(e) {
if ((e.keyCode == 83 || e.keyCode == 32) && e.ctrlKey) {
e.preventDefault();
[...document.querySelectorAll('button.btn.btn-primary.pull-end')]
.filter(x => x.innerText.includes('aaa'))[0]
.click()
if (window.location.hash.match(/#*/)) {
window.close()
}
}
}, false);
问题是选项卡在 click() 函数完成之前关闭
我知道我可能不得不使用回调,但我无法让它工作
请帮忙
我最终通过添加超时功能来实现它并且它工作正常
document.addEventListener("keydown", function(e) {
if ((e.keyCode == 83 || e.keyCode == 32) && e.ctrlKey) {
e.preventDefault();
[...document.querySelectorAll('button.btn.btn-primary.pull-end')]
.filter(x => x.innerText.includes('aaa'))[0]
.click()
if (window.location.hash.match(/#*/)) {
setTimeout(() => window.close(), 1000);
}
}
}, false);
我用 Tampermonkey 注入了以下函数(更大代码段的一部分)
document.addEventListener("keydown", function(e) {
if ((e.keyCode == 83 || e.keyCode == 32) && e.ctrlKey) {
e.preventDefault();
[...document.querySelectorAll('button.btn.btn-primary.pull-end')]
.filter(x => x.innerText.includes('aaa'))[0]
.click()
if (window.location.hash.match(/#*/)) {
window.close()
}
}
}, false);
问题是选项卡在 click() 函数完成之前关闭 我知道我可能不得不使用回调,但我无法让它工作 请帮忙
我最终通过添加超时功能来实现它并且它工作正常
document.addEventListener("keydown", function(e) {
if ((e.keyCode == 83 || e.keyCode == 32) && e.ctrlKey) {
e.preventDefault();
[...document.querySelectorAll('button.btn.btn-primary.pull-end')]
.filter(x => x.innerText.includes('aaa'))[0]
.click()
if (window.location.hash.match(/#*/)) {
setTimeout(() => window.close(), 1000);
}
}
}, false);