簡體   English   中英

我有一個包含一系列鏈接的網頁,安裝 Greasemonkey 腳本以延遲單擊每個鏈接,但 Firefox 僅在幾個

[英]I have a webpage with a series of links, install Greasemonkey script to click on each with delay but Firefox blocks after only a few

我有一個包含一系列鏈接的網頁,安裝 Greasemonkey 腳本以延遲單擊每個鏈接,但 Firefox 僅在幾個鏈接后阻止,即使我禁用了阻止彈出窗口選項。

無論如何,它們並不是真正的彈出窗口,而只是選項卡,即完整的頁面。

Greasemonkey 腳本是

    // ==UserScript==
    // @name     AlbunackSubmitArtistLinksOnPage
    // @version  1
    // @grant    none
    // @include  http://reports.albunack.net/mbartist_discogsartist_report2*.html
    // ==/UserScript==
    
    function delayedOpenLink(link)
    {
        link.click();  
    }
    
    function check()
    {
      var links = document.getElementsByName("link");
      var i=1;
      for(link of links)
      {
        setTimeout(delayedOpenLink, 5000 * i, link);
        i++;
      }
    }

    setTimeout(check, 5000);

這令人沮喪,因為它是我的網頁,並且在每個標簽打開之間設置了延遲,並且我已禁用彈出窗口阻止,那么為什么 Firefox 仍然阻止我的標簽

另外我收到一條消息,說 Firefox 阻止了 x 彈出窗口打開,但是如果您單擊它,則只能選擇逐個打開,阻止彈出窗口或管理彈出窗口(但它們已經取消阻止),但沒有允許彈出窗口的選項。

編輯:將延遲從 5 秒 (5000) 增加到 20 秒 (2000) 允許 go 通過但不多。

問題似乎是打開的標簽數量而不是打開的鏈接數量。 我的意思是,如果我更改鏈接以重用與target="secondpage"相同的選項卡,而不是在具有target="_blank"的新選項卡中打開,那么 Firefox 不會抱怨。

我只能這樣做,因為當我打開鏈接時,GreaseMonkey 腳本會啟動並在選項卡上提交頁面,因此我不再需要該頁面。 但我必須確保在打開每個鏈接之間有足夠的時間讓 GreaseMonkey 腳本在打開下一個鏈接之前完成。

GM_openInTab怎么樣?

// ==UserScript==
// @name     AlbunackSubmitArtistLinksOnPage
// @version  1
// @grant    GM_openInTab
// @include  http://reports.albunack.net/mbartist_discogsartist_report2*.html
// ==/UserScript==

const delay = seconds => new Promise(resolve => setTimeout(resolve, seconds * 1e3));

async function check()
{
  const links = document.getElementsByName("link");

  for (const link of links) {
    await delay(5);
    GM_openInTab(link.href);
  }
}

setTimeout(check, 5000); // or check()

這將每 5 秒點擊一次頁面上的每個鏈接。 您的原始腳本還有一些其他改進( const而不是varasync / await )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM