[英]How to prevent new tab creation in puppeteer's chromium instance?
I would like to prevent new tab creation. 我想防止创建新标签。 Either by clicking 'new tab button' either by window.open method. 通过window.open方法单击“新建选项卡按钮”。 Is there any way to listen on new tab creation. 有什么办法可以监听新标签页的创建。 I don't mean 'targetcreated' event because then tab is already created. 我的意思不是'targetcreated'事件,因为那时已经创建了选项卡。 Maybe there is something similar to event.preventDefault? 也许有些类似于event.preventDefault的东西?
Below is a very simple code that closes every new tab but I think it's very ugly and I want to improve it. 下面是一个非常简单的代码,它关闭了每个新选项卡,但我认为它很丑陋,我想对其进行改进。
browser.on('targetcreated', (target) => {
function closeNewTabs(target) {
let targetBrowser = target.browser();
targetBrowser.pages().then(data => {
if (data.length>1) {
for (let i = 0; i < data.length; i++) {
if (i>1) data[i].close();
}
}
})
}
})
A possible workaround would be to listen to targetcreated event and then page.close 可能的解决方法是先监听targetcreated事件,然后再page.close
It would be something similar to 这将类似于
browser.on("targetcreated", async (target)=>{
const page=await target.page();
if(page) page.close();
});
It doesn't prevent creating new tabs, but it should close them immediately after opening 它不会阻止创建新标签页,但应在打开后立即将其关闭
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.