簡體   English   中英

即使站點離線,如何保持用戶腳本正常工作?

[英]How to keep my userscript working, even when the site goes offline?

我想制作一個用戶腳本(現在我只擔心Chrome的兼容性)每30秒重新加載一次頁面(我的意思是,這不是重點,我只是想以某種方式在互聯網離線時執行一些腳本),以防互聯網中斷,用戶不在這里查看。

現在的問題是,一旦互聯網中斷,該頁面將被重定向到“此網頁不可用”,並且所有用戶腳本都將停止工作。

我已經嘗試將@include *添加到元數據,希望這將允許用戶腳本在所述頁面上工作,但是我沒有成功。

Chrome的“此網頁不可用”顯示不是帶有“可潤滑”方案的標准頁面。 這意味着Tampermonkey腳本和Chrome用戶腳本不會為此觸發。 您必須制作一個功能完善的Chrome擴展程序 (有關此問題的更多詳細信息。)

有一些解決方法:

(1)您可以將DNS提供商切換為類似OpenDNS的 提供商 OpenDNS劫持了DNS解析錯誤,並提供了一個垃圾郵件的“搜索”頁面。 (頁面為guide.opendns.com ,即IIRC。)

該搜索頁面可以用Tampermonkey潤滑。 您的腳本可以搜索OpenDNS的“不可用”消息,並且知道該站點處於脫機狀態。

(2) 使用AJAX輪詢頁面標題,僅在頁面同時處於聯機狀態時才重新加載。

使用GM_xmlhttpRequest() (或jQuery)發出head請求 如果請求出錯,則表明該站點處於離線狀態,請不要重新加載頁面。

同樣,如果Last-Modified標頭與上次檢查時的標頭相同,則重新加載頁面(通常)沒有任何意義。

如評論中所述:

將頁面包裝在<iframe>並在父級中執行用戶腳本。 連接斷開后,Chrome應該繼續在父級中執行Userscript,因為它仍處於加載狀態,這與iframe不同,iframe在刷新后將無法加載。 請注意,您可能會遇到一些同源策略方面的困難:afaik,您將無法注意到iframe加載失敗。

暫無
暫無

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

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