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 判定為非法。

文章標籤
全站熱搜
創作者介紹
創作者 GPhettoH 的頭像
GPhettoH

歇息,等待明日的天空

GPhettoH 發表在 痞客邦 留言(0) 人氣(0)