我想做一个非常简单的扩展,略微改变下载页面的外观。更改“历史记录”页面可能也很有趣,但这适用于以后。
有办法吗?
我尝试在"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/manifest和make_page_red/background.html偷来的
我到目前为止的“扩展”:http://hotblocks.nl/js/downloads.rar
修改
我发现只要CSS就可以实现我想要实现的目标。我不需要注入javascript。这会让它变得更容易吗?这有可能吗? =)
答案 0 :(得分:4)
根据this documentation,chrome://
网址是无效的方案,因此无法匹配:
匹配模式本质上是一个以允许的方案(
http
,https
,file
或ftp
)开头的网址,其中包含“{{ 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来查看和复制其源代码,从而在文件中使用类似的代码