web-dev-qa-db-ja.com

Chrome Extension:ページを読み込むたびに実行する

1ページがロードされた後にいくつかのスクリプトを実行するchrome拡張機能を作成したいのですが、このロジックをバックグラウンドページに実装する必要があるのか​​、他の場所にあるのかわかりませんこちらが大歓迎です。

72
albertosh

バックグラウンドスクリプト から chrome.tabs.onUpdated イベントおよびプロパティの確認changeInfo.statusコールバック。 loadingまたはcompleteです。 completeの場合、アクションを実行します。

例:

chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
  if (changeInfo.status == 'complete') {

    // do your things

  }
})

これはおそらくすべてのタブ補完でトリガーされるため、タブが 同名属性activeであるかどうかも確認できます。

chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
  if (changeInfo.status == 'complete' && tab.active) {

    // do your things

  }
})
71
fiatjaf

ページのonloadイベントで実行する必要がある場合、つまりドキュメントとそのすべてのアセットが読み込まれている場合、これは各ページに埋め込まれている コンテンツスクリプト にある必要がありますonloadを追跡します。

46
Matchu

スクリプトをコンテンツスクリプトに入れることができます。

38
Bohdan

このコードはそれを行う必要があります:

manifest.json

   {
      "name": "Alert 'hello world!' on page opening",
      "version": "1.0",
      "manifest_version": 2,
      "content_scripts": [
        {
          "matches": [
            "<all_urls>"
          ],
          "js": ["content.js"]
        }
      ]
    }

content.js

alert('Hello world!')
3
Evan Ross