1

twitch.tv で Chrome 拡張機能を使用していくつかのスクリプトを有効にしたいと考えています。

script2.js というファイルと script3.js というファイルを取得しました。

私のマニフェストでは、www.twitch.tv がロードされていると言いたいのですが、script2.js をロードする必要があり、www.twitch.tv/directory がロードされている場合は、script3.js をロードする必要があります。

{
  "content_scripts": [{
  "js": [ "script2.js" ],
  "matches": [ "*://*.twitch.tv/" ]
 }, {
  "js": [ "script3.js" ],
  "matches": [ "*://*.twitch.tv/directory" ]
} ],
"description": "desc",
"manifest_version": 2,
"name": "TwitchTV",
"permissions": [ "*://*.twitch.tv/*" ],
"version": "1.0"
} 

script2 はロードされていますが、script3 はロードされていません。私は何か間違ったことをしていますか?

編集:

私が言及したマニフェストを調べてみると、マニフェストは正しいです。alert("test"); を追加しました。私のスクリプトの上にアラートがトリガーされるため、スクリプトは正しく実行されます。しかし:

サイトにいくつかの新しいボタンを追加します。script3.js を twitch.com/directory の chrome-console にコピー&ペーストすると、新しいボタンが表示されます。ただし、スクリプトがクロムに​​よって実行される場合、ボタンはありません。

スクリプトは正しいように見えますが (手動でロードすると機能するため)、自動的にロードされた場合は間違っているのはなぜですか?

4

1 に答える 1

2

最初のルールは常に一致するため、2 つのルールを逆にします。

{
  "js": [ "script3.js" ],
  "matches": [ "*://*.twitch.tv/directory" ]
},
{
  "js": [ "script2.js" ],
  "matches": [ "*://*.twitch.tv/" ]
 }]
于 2013-07-19T21:51:31.517 に答える