我有一個包含一系列鏈接的網頁。我安裝了 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 秒 (20000) 允許更多時間通過,但不會更多。
uj5u.com熱心網友回復:
怎么樣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而不是var, async/ await)。
uj5u.com熱心網友回復:
問題似乎是打開的標簽數量而不是打開的鏈接數量。我的意思是,如果我更改鏈接以重用相同的選項卡target="secondpage"而不是在新選項卡中打開,target="_blank"那么 Firefox 不會抱怨。
我只能這樣做,因為當我打開鏈接時,Greasemonkey 腳本會啟動并在選項卡上提交頁面,因此我不再需要該頁面。但我必須確保在打開每個鏈接之間有足夠的時間讓 Greasemonkey 腳本在打開下一個鏈接之前完成。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/405424.html
標籤:
上一篇:如何離線使用webrtc
下一篇:如何使用求和函式在SQL中舍入
