1

Chrome拡張機能のコンテンツスクリプトの場合、挿入するページを指定matchesおよびexclude_matches制御できます。これは、次のような拡張機能のマニフェストで指定する必要があります。

{
  "name": "Color picker",
  ...
  "content_scripts": [
    {
      "matches": ["http://*/*", "https://*/*"],
      "exclude_matches": ["http://www.google.com/*"],
      "css": ["color_picker.css"],
      "js": ["jquery.js", "color_picker.js"]
    }
  ],
  ...
}

拡張機能が使用されているときに、["http://www.yahoo.com/*"],追加できるかどうか疑問に思いました。exclude_matchesこのようにして、ユーザーが制御できるようにすることができますexclude_matches

4

2 に答える 2

8

拡張機能は、拡張機能のを含むローカルファイルを変更できませんmanifest.json。Chromeはオプションの権限用のAPIを提供していますが、これにはコンテンツスクリプトは含まれていません。

柔軟なパターンを手動で作成できます。

// In the content script:
var exclude = /^https?:\/\/(www\.)?yahoo\.com\//;
if (!exclude.test(location.href)) {
     // Run logic.
}

正規表現は、必須ではありませんが、この目的には非常に強力です。の代わりにlocation.href、などの他のlocationプロパティをlocation.host使用できます。

参照:MDNwindow.location :。

于 2012-04-16T10:02:56.600 に答える
2

拡張機能が絶対に実行してはならないことexclude_matchesに対する「厳しい」制限と考えることができます。つまり、コンテンツスクリプトが触れてはならないページの種類に永続的な境界を設定します。永続的であることが意図されているため、その場で変更する方法はありません。

ただし、柔軟性を持たせたい場合は、注射をプロガンマティックに行う必要があります。Googleには、を使用してこれを行う方法に関するドキュメントexecuteScriptがあります。ユーザー制御リストを使用して独自の除外ロジックを追加する必要があります(おそらく、他の回答からの適切なアドバイスを使用します)。

于 2012-04-16T17:12:06.813 に答える