我可以为Chrome页面(下载,扩展程序等)制作Google Chrome扩展程序吗?

时间:2011-04-27 14:01:24

标签: google-chrome google-chrome-extension

我想做一个非常简单的扩展,略微改变下载页面的外观。更改“历史记录”页面可能也很有趣,但这适用于以后。

有办法吗?

我尝试在"chrome://downloads"中使用match manifest.json进行Content Script扩展。 Chrome不允许这样做,并在打包扩展程序时响应错误。

还有另一种简单方法吗?它必须简单,因为更改很简单,因为所有chrome://页面都是使用HTML,JS和CSS构建的。

修改
尝试使用后台脚本后......

我无法让chrome.tabs.executeScript工作!我添加了background.html

chrome.browserAction.onClicked.addListener(function(tab) {
    alert(this.document.body.innerHTML);
    alert(chrome.tabs.executeScript(null, {
        code : "document.body.style.backgroundColor = 'red';"
    }));
});

我在manifest.json添加了这个以添加(隐藏)'浏览器操作按钮':

    ,"browser_action": {
/*      "popup": "background.html",*/
        "name": "Alter page"
    }

onClicked事件会触发两个警报(首先是background.html的正文,第二个是undefined)。但是代码(带有document.body.style.backgroundColor = 'red';的字符串)不会执行!当然,没有像这样的扩展调试=)

有人提示吗?我正试图抓住标签window.document background.html的{​​{1}}!)。注入的脚本(这是window.document应该做的)应该这样做。

PS
我是从make_page_red/manifestmake_page_red/background.html偷来的 我到目前为止的“扩展”:http://hotblocks.nl/js/downloads.rar

修改
我发现只要CSS就可以实现我想要实现的目标。我不需要注入javascript。这会让它变得更容易吗?这有可能吗? =)

3 个答案:

答案 0 :(得分:4)

根据this documentationchrome://网址是无效的方案,因此无法匹配:

  

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

我会考虑使用override pages代替。


根据要求,这是我的扩展程序,至少可以在加载*时加载,但正如我所说,即使您知道这是您正在查看的页面,我也认为您无法修改页面。

<强>的manifest.json

chrome://downloads

<强> background.html

{
    "name": "Test",
    "version": "0.0.1",
    "background_page": "background.html",
    "permissions": [
        "tabs"
    ]
}

答案 1 :(得分:3)

更新:自Chrome 31以来,有一个扩展API可用于访问Chrome的下载内容:https://developer.chrome.com/extensions/downloads

还有一个API允许访问列表并管理其他已安装的扩展程序:https://developer.chrome.com/extensions/management


(上一个答案)

很遗憾,目前还没有适用于Chrome扩展程序的API来访问有关用户下载的信息。不过,这是一个广泛要求的功能,Chrome开发人员在这里进行了一些讨论:http://code.google.com/p/chromium/issues/detail?id=12133

如果您希望查看此功能,则会解决该问题,并且您将收到电子邮件更新。

答案 2 :(得分:1)

As this page shows, there is no API to override the downloads page ...但是,有一种方法可以使用chrome://downloads/中的javascript加载background page页面时替换chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){ if(changeInfo.status === "loading"){ if(tab.url === "chrome://downloads/"){ chrome.tabs.update(tab.id, {url: "REPLACEMENT.html"}); } } }); 页面。 p>

chrome://downloads

基本上它的作用是 - 只要页面REPLACEMENT.html开始加载(使用tabs.onUpdated API),页面就会重定向到chrome://downloads(使用tabs.update API)。 ..标签更新没有明显的延迟 因为此脚本在{{1}}页面开始加载之前运行...您可以通过在下载页面上按CTRL + U来查看和复制其源代码,从而在文件中使用类似的代码