简体   繁体   English

如何防止在操纵up的铬实例中创建新标签?

[英]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.

相关问题 Puppeteer(在 Heroku 上):如何防止挂起 Chromium 进程? - Puppeteer (on Heroku): how to prevent hanging Chromium processes? 打开新选项卡后,如何切换到 Puppeteer 浏览器实例中的上一个选项卡? - How can I switch to a previous tab in a Puppeteer browser instance after opening a new tab? 如何将 puppeteer“挂钩”到正在运行的 Chrome 实例/选项卡中 - How to "hook in" puppeteer into a running Chrome instance/tab 使用 ng-click 指令单击按钮时,如何防止在使用 puppeteer 抓取期间打开新标签页? - How to prevent opening a new tab during scraping with puppeteer, when clicking a button with ng-click directive? 在使用 Puppeteer 打开的 Chromium 选项卡中的页面上查找文本 - Finding text on the page in the Chromium tab open with Puppeteer 如何下载在 puppeteer 的新标签页中打开的 pdf? - How to download a pdf that opens in a new tab in puppeteer? Puppeteer中新选项卡上的SetBypassCSP - SetBypassCSP on new tab in Puppeteer 如何防止在$ location哈希搜索参数更改上创建控制器的新实例。 - How to prevent creation of new instance of controller on $location hash search param change. 如何重新创建Chromium / Chrome新标签首页 - How to recreate Chromium/Chrome new tab home page (jquery tab ui)如何防止无限的jquery选项卡创建 - (jquery tab ui) how to prevent unlimited jquery tab creation
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM