2016-03-29 4 views
5

時々、過負荷時に一部のサイトが読み込まれません。サイトが完全にロードされなかった場合に通知を表示します。

このエラーは、chrome.webRequest.onErrorOccurred apiを使用して検出できます。

この場合、コンテンツスクリプトは一切実行されないため、バックグラウンドページからコンテンツスクリプトへのメッセージ送信は役に立たないと思います。

読み込みに失敗したサイトの本文に通知を貼り付けるにはどうすればよいですか?

スクリプトをバックグラウンドページから実行してもよいですか?ページには本文のコンテンツがありますか?

+0

[chrome.webRequest.onErrorOccurred](https://developer.chrome.com/extensions/webRequest#event-onErrorOccurred)を見ましたか? – dan

+0

@ dan75いいえ私は – user5858

+0

ではありませんでした。要求(文書、スタイルシート、画像など)にエラーが発生するたびに、デフォルトで起動します。ただし、[リソースタイプフィルタ](https://developer.chrome.com/extensions/webRequest#type-ResourceType)でそれを使用すると、特定のリクエストタイプをフィルタリングできます。 – dan

答えて

0

ここではいくつかのオプションがあります。 chrome.webRequest.onErrorOccurred()を使用している場合は、エラーが発生したときにタブをエラーページにリダイレクトすることをお勧めします(chrome.tabs.update()を使用)。例えば

chrome.webRequest.onErrorOccurred.addListener(function(details) 
{  
    chrome.tabs.update(details.tabId, {url: "URL FOR AN ERROR PAGE"}); 
}, 
{types: ["main_frame"]}); 

これは、エラーがmain_frameエラーのresourceTypeでWebリクエストで発生したタブをリダイレクトします。

ここで考慮する必要があることがいくつかあります。あるタイプのmain_frameを持つリクエストからのエラーをキャプチャしたいだけですか?そうでない場合は、イベントから 'タイプ'フィルタを削除してください。

他に考慮する必要があるのは、リダイレクト先のページです。あなたの拡張機能の中にHTMLファイルをパッケージ化してからそれにリダイレクトすることができます。エラーページのURLを生成するには、chrome.extension.getURL('customerrorpage.html')を実行します。

関連する問題