2013-07-19 69 views
1

我想用chrome擴展在twitch.tv上激活一些腳本。Chrome擴展多個匹配

所以我得到了一個名爲script2.js和一個名爲script3.js

在我的表現,我想說的www.twitch.tv裝載script2.js已經被加載,如果WWW .twitch.tv /目錄被加載,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不是。難道我做錯了什麼?

編輯:

好,看着我提到的清單,清單是正確的。 我添加了一個提醒(「測試」);在我的腳本之上,並且警報被觸發,所以腳本被正確執行。但是:

我在網站上添加了一些新的按鈕。如果我複製&將我的script3.js粘貼到twitch.com/directory上的chrome控制檯,則會顯示新按鈕。但是如果腳本是通過chrome執行的,按鈕不在那裏。

這是爲什麼,腳本似乎是正確的(因爲如果我手動加載它,它的工作原理),但如果它自動加載它的錯誤?

+0

通過「如果我手動加載它的作品」你的意思是你在頁面的執行環境中運行它(例如,粘貼到控制檯),而不是[內容腳本執行環境](https://developer.chrome.com/extensions/content_scripts.html#execution-environment)?也許這是你的問題。 – apsillers

+0

是的,這是手動加載的意思。 但我在我的腳本中做的唯一事情是創建自己的函數來運行和操作DOM(添加新的HTML節點並向它們添加函數)所以通常這應該工作...... :( – Loki

回答

2

反轉兩個規則,因爲第一個將始終與

{ 
    "js": [ "script3.js" ], 
    "matches": [ "*://*.twitch.tv/directory" ] 
}, 
{ 
    "js": [ "script2.js" ], 
    "matches": [ "*://*.twitch.tv/" ] 
}]