我可以使用JavaScript(用户脚本)修改chrome:// extensions / page吗?

时间:2011-05-27 06:11:40

标签: javascript google-chrome google-chrome-extension userscripts

我想使用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中加载它时,它说无效标题,最后我发现导致错误的是@match chrome://extensions/。这是否有一个解决方法?

3 个答案:

答案 0 :(得分:5)

为了安全起见,Chrome扩展程序不会在chrome://extensions/目录或Chrome Web Store或其他一些重要区域执行。

一种简单的方法是,如果某个扩展程序可以访问Chrome扩展程序页面中的DOM,则可能会删除卸载它的能力,这对许多用户来说可能非常糟糕。您可能希望查看chrome.management API,但是,如果您想在“扩展程序”页面之外构建某些内容,以便能够搜索用户的扩展程序。

chrome本身不是允许的方案,这就是为什么你得到一个无效的方案错误。 Here's what Google has to say about it

  

匹配模式本质上是一个以允许的方案(httphttpsfileftp)开头的网址,其中包含{{1字符。特殊模式'*'匹配以允许的方案开头的任何URL。

因此,根据定义<all_urls>,无论如何,计划都不会有效。可以认为它不仅仅是另一个网页,而是Chrome的UI的一部分。

答案 1 :(得分:1)

我认为,那个页面不是“普通”的网页,它的安全性很高,你不能乱用用户脚本。这就是插件的用途。

答案 2 :(得分:1)

出于安全原因,您无法在chrome:// extensions /中注入内容脚本/用户脚本。您可以使用Extension Management API页面创建自己的扩展程序管理扩展程序。