3

我想使用 JavaScript 为chrome://extensions/页面添加搜索栏,所以我创建了一个名为 test.user.js 的文件,并在其中编写脚本:

// ==UserScript==
// @name       chromeex
// @namespace  chromeex
// @version    v1.0
/* @reason
 * just a test
 * @end
 */
// @match     chrome://extensions/
//
// ==/UserScript==

(function(){
    alert("haha");
}());

但是当我在 Chrome 中加载它时,它说 Invalid header,最后我发现它@match chrome://extensions/是导致错误的原因。有这个解决方法吗?

4

3 回答 3

7

Chrome 扩展程序不会在chrome://extensions/目录或Chrome 网上应用店或其他一些重要的安全区域中执行。

一种简单的思考方式是,如果扩展程序可以访问您的 Chrome 扩展程序页面中的 DOM,它可能会取消您卸载它的能力,这对许多用户来说可能非常讨厌。但是,如果您想在扩展页面之外构建一些东西以便能够搜索用户的扩展,您可能需要查看chrome.management API 。

chrome本身不是允许的方案,这就是您收到无效方案错误的原因。以下是谷歌对此的评价

匹配模式本质上是一个以允许的方案(httphttpsfileftp)开头的 URL,并且可以包含'*'字符。特殊模式<all_urls>匹配任何以允许的方案开头的 URL。

因此,根据定义chrome,无论如何作为一个方案都行不通。不只是将其视为另一个网页,而是 Chrome 用户界面的一部分。

于 2011-05-27T06:18:47.833 回答
2

由于安全原因,您不能在 chrome://extensions/ 中注入内容脚本/用户脚本。您可以使用扩展管理 API页面来创建自己的扩展管理扩展。

于 2011-05-28T01:05:06.973 回答
1

我认为,该页面不是“普通”网页,它是高安全区域,您不能乱用用户脚本。这就是插件的用途。

于 2011-05-27T06:19:52.897 回答