代码之家  ›  专栏  ›  技术社区  ›  Taazar Scy

用JavaScript或greasemonkey关闭当前选项卡右侧的所有选项卡?

  •  -2
  • Taazar Scy  · 技术社区  · 10 年前

    我目前正在编写一个机器人来为我做一些事情,目前它必须在每次迭代时打开大量选项卡,为了使机器人完全自动,我必须找到一种方法来关闭它们,除了机器人运行的原始选项卡。(必须在下一次迭代之前关闭选项卡,否则它所做的操作将失败。)

    2 回复  |  直到 10 年前
        1
  •  2
  •   Taazar Scy    7 年前

    我找到了一种方法来实现这一点,使用一个函数来检测URL,并为此执行一个特定的函数,然后关闭它。这是代码。。。

    if (window.location.href.indexOf("https://www.google.com") != -1) {
    

    因此,这会检测到我的URL包含某个字符串,因此会在该URL之后的所有页面上激活。它符合我的要求。

        2
  •  1
  •   woxxom    10 年前
    • 通常通过用户脚本是不可能的,因为现代浏览器阻止关闭tabs/windows的尝试(Firefox有一个允许它的配置值,但不是所有用户都愿意启用它)。您必须将用户脚本转换为扩展名/插件。

    • 如果您不介意更改默认浏览器配置以允许脚本关闭选项卡,请使用 GM_setValue 要引发脚本在其他选项卡中定期检查的标志,请执行以下操作:

      var dontCloseMe = false;
      
      setInterval(function() {
          var shouldClose = Date.now() - GM_getValue("terminate", 0) < 2 * 100;
          if (shouldClose && !dontCloseMe) {
              window.close();
          }
      }, 100);
      
      .................
      
      if (shouldCloseOtherTabs) {
          dontCloseMe = true;
          GM_setValue("terminate", Date.now());
      }
      

      确保 // @include 实际上包括其他选项卡的url。

    推荐文章