【发布时间】:2013-04-30 11:16:40
【问题描述】:
我使用 match 来限制我的脚本只能在一个域中运行,但 chrome 会在每个域中运行它。我尝试了@include 和@match,当我尝试安装它并在所有网站上运行它时,它显示“访问所有网站上的数据”。
如何在 chrome 中将用户脚本限制为一个域?
元数据与本页相同:http://www.chromium.org/developers/design-documents/user-scripts
我的意思是:
// @match http://*.google.com/*
// @match http://www.google.com/*
【问题讨论】:
-
您是要安装 zip / crx 文件还是
.user.js文件? -
我说的是用户脚本,所以它是 .user.js
-
Chrome 将用户脚本转换为原生 Chrome 扩展,其匹配模式等同于
<all_urls>,然后通过"include_globs"限制页面。不用担心警告,它会按照您的预期运行。如果你想得到一个不那么可怕的警告,你需要从你的用户脚本创建一个 Chrome 扩展,并编辑manifest.json文件的“content_scripts”部分。有关从用户脚本生成 Chrome 扩展程序的步骤,请参阅 this answer。 -
您链接的示例包含
http://*/*。显然,这将在所有页面上运行。我还检查了自动生成的manifest.json,它包含预期值。阅读stackoverflow.com/a/11773654/938089 以了解如何获取和查找自动生成的manifest.json文件。编辑:删除// @matches http://*/*后,代码仅在 Google 上运行 - 正如预期的那样。 -
请发布解决方案的答案(并删除一些可能对未来读者无用的 cmets)。其他人可能会从您的发现中受益。
标签: javascript google-chrome userscripts