Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止在Puppeter';例如什么?_Javascript_Google Chrome_Chromium_Puppeteer - Fatal编程技术网

Javascript 如何防止在Puppeter';例如什么?

Javascript 如何防止在Puppeter';例如什么?,javascript,google-chrome,chromium,puppeteer,Javascript,Google Chrome,Chromium,Puppeteer,我想阻止创建新选项卡。通过单击“新建选项卡按钮”或通过window.open方法。 有没有办法监听新标签的创建。我不是说“targetcreated”事件,因为此时选项卡已经创建。也许有类似于event.preventDefault的东西 下面是一个非常简单的代码,它关闭了每个新标签,但我认为它非常丑陋,我想改进它 browser.on('targetcreated', (target) => { function closeNewTabs(target) { let

我想阻止创建新选项卡。通过单击“新建选项卡按钮”或通过window.open方法。 有没有办法监听新标签的创建。我不是说“targetcreated”事件,因为此时选项卡已经创建。也许有类似于event.preventDefault的东西

下面是一个非常简单的代码,它关闭了每个新标签,但我认为它非常丑陋,我想改进它

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();
              }
          }
      })
    }
})
browser.on('targetcreated',(target)=>{
功能关闭(目标){
让targetBrowser=target.browser();
targetBrowser.pages()。然后(数据=>{
如果(数据长度>1){
for(设i=0;i1)数据[i].close();
}
}
})
}
})

一种可能的解决方法是先听事件,然后

这将类似于

browser.on("targetcreated", async (target)=>{
   const page=await target.page();
   if(page) page.close();
});


这并不能阻止创建新选项卡,但它应该在打开后立即关闭它们

似乎您正在使用iframe连接另一个站点,因此无法控制弹出行为?不,我的问题与此无关-而是与Chrome行为有关。我想一直固定的标签数量,并防止打开新的。