2

我正在编写一个仅在 URL 匹配时才运行的 Google chrome 扩展程序http://*:8000/*

我的 manifest.json 文件的一部分:

"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?

4

1 回答 1

3

如果它不是您想要的端口,您将不得不以编程方式检查端口号并停止对脚本的评估。您可以检查window.location.port(fyi,这是一个空字符串,当端口 80 on 时http)或window.location.host其中包括主机名和端口(但不window.location.hostname包括 - 它不包括端口)。所以,我会用这样的东西开始我的脚本:

(window.location.port === "8000") && (function() {
    // your code...
})();
于 2013-08-01T20:24:53.733 回答