Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome 更通用的内容脚本匹配模式?_Google Chrome_Google Chrome Extension - Fatal编程技术网

Google chrome 更通用的内容脚本匹配模式?

Google chrome 更通用的内容脚本匹配模式?,google-chrome,google-chrome-extension,Google Chrome,Google Chrome Extension,我想匹配: http://images.orkut.com/ http://www.orkut.co.uk/ http://www.orkut.com.br/ http://images.orkut.jp/ 我尝试使用的模式是: http://*.orkut.*/* 但当我尝试加载扩展时,它会说: invalid value for content_scripts[0].matches[0] 有没有办法在不指定完整域的情况下匹配这些URL 在清单文件中 "permissions": [

我想匹配:

http://images.orkut.com/
http://www.orkut.co.uk/
http://www.orkut.com.br/
http://images.orkut.jp/
我尝试使用的模式是:

http://*.orkut.*/*
但当我尝试加载扩展时,它会说:

invalid value for content_scripts[0].matches[0]
有没有办法在不指定完整域的情况下匹配这些URL


在清单文件中

"permissions": [ "tabs", "http://*.orkut.*/*", "https://*.orkut.*/*" ],
"content_scripts":
[
    {
        "matches": [ "http://*.orkut.*/" ], // error
        "js": ["content/loader.js"]
    }
]
一个更通用的方法不起作用,而这个方法起作用:

"matches": [ "http://*.orkut.co.uk/" ],

由于安全原因,您无法执行此操作,有关更多信息,请参阅

此外,Chrome Extension的团队负责人也很好地解释了原因:

如前所述,这不受
manifest.json中google的支持

但是,您仍然可以在内容脚本中添加一个简单的javascript检查! 例如,我希望内容脚本只在
192.168.*.*.
主机上执行(这是一个内部chrome扩展),这就是我解决类似情况的方法

  • manifest.json中使用


  • 你能在定义模式的地方添加更多的上下文吗?@marcog我想这会误导你。问题是chrome不接受这种模式。如果相关的话,我使用的是Chrome 9.0.597.19 beta。我问的原因是,它在Vimiums排除的URL中对我有效,我相信它可以不经修改地传递到Chrome上。所以其他地方可能有问题。@marcog:也许新版本不接受这个?我想我将不得不允许所有的URL,并让自己的过滤器…或者可能测试版是错误的?你试过最新的稳定版本吗?我用的是铬7.0.517.41。
    ...
      "content_scripts": [
        {
          "matches": ["<all_urls>"],
          "js": ["content-script.js"]
        }
      ],
    ...
    
    let isValidHostname = /^192.168.\d+.\d+$/.test(window.location.hostname);
    if (isValidHostname){
        // Do your stuff here
    }