javascript - 如何防止在 puppeteer 的 chromium 实例中创建新选项卡?

标签 javascript google-chrome chromium puppeteer

我想阻止创建新选项卡。通过 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();
              }
          }
      })
    }
})

最佳答案

一个可能的解决方法是听 targetcreated事件然后 page.close

这将类似于

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

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

关于javascript - 如何防止在 puppeteer 的 chromium 实例中创建新选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51551728/

相关文章:

javascript - jstree select_limit 不工作。我想将选择限制设置为仅选择 3 个节点

javascript - JavaScript 中不需要的事件监听器的垃圾收集

pointers - 在 Chromium 信息亭上隐藏鼠标指针

javascript - 如果打开,更改复选框标签的名称

javascript - 返回 promise 后访问工厂服务

javascript - jQuery 选择菜单的顶部 li

javascript - 为什么在 float 上使用 toString() 在 Firefox、Chrome 和 IE 中会产生不同的结果?

css - 为什么子元素不会停留在固定父元素的底部?

linux - 使用 pacman 在运行 Arch Linux 的 Raspberry Pi 上安装 Chromium

php - 使用 Headless Chrome,背景颜色不会在所有页面/站点的 PDF 上呈现