3

ユーザーがアクセスする Web サイトを分析する Chrome 拡張機能を作成しています。chrome.tabs.onUpdated は、AJAX の負荷の高いサイトでページの更新を取得するのに適しているため、manifest.json の content_scripts の代わりに chrome.tabs.onUpdated を使用して分析スクリプトを実行することにしました。

新しい空のタブや chrome-extension:// (ローカル) ページの更新を分析する必要はありません。実際、これらのタブにスクリプトを挿入しようとすると、エラーがスローされます。これらのページを自動的に無視する方法はありますか? それとも、Try/Catch ブロックを使用して手動で行うか、URL を分析する必要がありますか? 私は手動でそれを行うことができると確信していますが、これを達成するためのより自動的な方法があるはずです.

4

1 に答える 1

1

で始まるものを除外することにより、すべてのローカルまたは内部のクロム拡張 URL を無視できます'chrome'

// Listen for changes on tabs
chrome.tabs.onUpdated.addListener(function(tabId, info, tab) {
    log_console('tab', tab)

    // If tab is not an internal chrome tab
    if (!tab.url.startsWith('chrome')) {
        console.log('Non-internal URL updated")
    }

});

URL にアクセスする場合は、tabsアクセス許可が必要であることに注意してください。許可を取得できない場合は、注入しようとしたときにエラーをキャッチして処理するのが最善の策かもしれません。manifest.jsontab.urlundefinedtabs

于 2020-03-25T20:46:29.863 に答える