4

ユーザースクリプトを作成したい(現在、Chromeの互換性についてのみ心配しています)30秒ごとにページをリロードします(つまり、それは重要ではありません。インターネットがオフラインのときに何らかのスクリプトを実行したいだけです)。インターネットがダウンし、ユーザーはそれを見るためにここにいません。

さて、問題は、インターネットがダウンするとすぐにページが「このウェブページは利用できません」にリダイレクトされ、すべてのユーザースクリプトが機能しなくなることです。

ユーザースクリプトがそのページで機能することを期待して、メタデータに追加しようとしまし@include *たが、成功しませんでした。

4

2 に答える 2

1

Chrome の「この Web ページは利用できません」という表示は、「Greaseable」方式の標準ページではありません。これは、Tampermonkey スクリプトと Chrome ユーザースクリプトが起動しないことを意味します。本格的なChrome 拡張機能を作成する必要があります。(詳細については、この質問を参照してください。)

いくつかの回避策があります:

(1) DNS プロバイダーをOpenDNSのようなものに切り替えることができます。OpenDNS は DNS 解決エラーを乗っ取り、代わりにスパムのような「検索」ページを提供します。(ページはguide.opendns.comIIRCです。)

その検索ページ、Tampermonkey によってグリース化可能です。スクリプトは、OpenDNS の「使用不可」メッセージを検索し、サイトがオフラインであることを知ることができます。

(2) AJAX を使用してページヘッダーをポーリングし、ページが稼働中でオンラインの場合にのみリロードします。

GM_xmlhttpRequest () (または jQuery) を使用してheadリクエストを作成します。リクエストがエラーになった場合、サイトはオフラインです。ページをリロードしないでください。

同様に、Last-Modifiedヘッダーが最後にチェックしたときと同じである場合、(通常は) ページをリロードしても意味がありません。

于 2013-02-10T22:10:27.123 に答える
0

コメントで述べたように:

ページを でラップし、<iframe>ユーザースクリプトを親で実行します。接続が切断されると、更新するとすぐにロードに失敗する iframe とは異なり、Chrome はまだロードされているため、親で Userscript を実行し続ける必要があります。同じ生成元ポリシーの問題が発生する可能性があることに注意してください。iframe の読み込みに失敗したことに気付かない場合があります。

于 2013-02-10T14:22:08.530 に答える