content_scripts
content_scripts 是加載於分頁document 上的Javascript,也就是說,被指派為content_scripts 的任何Javascript 都有權力直接更動分頁中的所有物件,類似「書籤式外掛」。
content_scripts 在manifest 中宣告,其屬性名稱為"content_scripts",為一個陣列,每個元素都必需有子屬性"matches",描述該些Javascript 在哪些網址下有效;"js" ,表示被指派的Javascript。如果要限制該些content_scripts 在哪些網址有效,則在最外層加上屬性"permissions"。
]"permissions": "http://*/*", //據本人觀察,這個屬性使用"matches" 就能取而代之了。
]"content_scripts": [ //注意後面是"scripts" 而不是"script"。
]{"matches": ["http://www.google.com/*"], "js": ["testA.js"]}, //這樣就是content_scripts 下的一個項目,有子屬性"matches"、"js",且用{} 包起來。
]{
]"matches": ["http://www.msn.com*", "http://www.apple.com/*"],
]"js": ["testB.js", "testC.js"]
]} //這是另一個content_scripts 項目。
]]
每個項目可以添加屬性"run_at",描述該Javascript 什麼時候啟動,其值可以是"document_start" (開始載入時)、"document_end" (載入完成時)、"document_idle" (閒置),若無設置,則預設為"document_idle"。
]"content_scripts": [{
]"matches": ["http://www.google.com/*"],
]"js": "test.js",
]"run_at": "document_start" //通常不會在開始載入時啟動Javascript,因為元件都還沒排列、讀取完成,Javascript 可能會找不到目標物。
]}]
另一個每個項目可添加的屬性是"all_frames",描述是否對所有符合條件的分頁同時運作Javascript,或者只對最上層的框架(分頁) 啟動Javascript。這個屬性比較特別,他的屬性值用"true" 跟"false" 表示,並且不使用「"」包起來。true 代表同時運作,false 代表只對最上層運作,預設值為false。
]"content_scripts": [{
]"matches": ["http://www.google.com/*"],
]"js": "test.js",
]"all_frames": true
]}]
最後要說明,以上所有matches 裡的網址,都必須有完整域名,也就是說,"http://www.google.com/*" 是合法的,但"http://www.google.com*" 是不合法的,兩者差在後面的"/",因為"/" 代表的是域名結束,只要域名一確定,後面的網址不管怎麼變──"http://www.google.com/translate"、"http://www.google.com/gmail"──都是隸屬於該公司的,如果域名沒有結束,以此為例,後面可能是"http://www.google.com.cc",這就是截然不同的一個網站,可能會造成安全性問題,因此會被Chrome 判定為非法。
