2013-08-01 94 views
2

我正在寫一個谷歌Chrome擴展當URL匹配我的manifest.json文件的http://*:8000/*manifest.json中,content_scripts限制匹配與端口號

部分應該只運行到網址:

"content_scripts": [{ 
    "matches": ["http://*:8000/*"], 
    "js" : ["client.js"], 
    "run_at": "document_end" 
}] 

嘗試打包擴展時出現以下錯誤。

Invalid value for 'content_scripts[0].matches[0]': Invalid host wildcard. 

如果我改變matches<all_url>它包正確和作品,但每一頁上。

我如何才能使它只與包含端口8000的URL一起工作?

+1

' 「匹配」:那麼,我會像這樣的東西開始我的劇本[ 「 」], 「include_globs」:「 HTTP:// *:8000/*」]'可能工作,但我認爲它也可能匹配'http://foo.com/bar/:8000/baz' – apsillers

回答

3

你將不得不以編程方式檢查端口號,並停止評估腳本,如果它不是你想要的端口。您可以選擇window.location.port(fyi,在http時爲端口80的空字符串)或window.location.host,其中包含主機名和端口(但不包括window.location.hostname--它不包含端口)。

(window.location.port === "8000") && (function() { 
    // your code... 
})();