这是manifest.json
中的代码{
"name": "Page Title changer",
"version": "1.0",
"description": "Change the <title></title> of a page",
"browser_action": {
"default_icon": "icon.png"
},
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["changetitle.js"]
}
]
}
这是来自changetitle.js文件的代码
chrome.browserAction.onClicked.addListener(function() {
document.title = 'new page title';
});
我不明白为什么它不起作用,我在编写此扩展程序时检查了Google代码文档。
答案 0 :(得分:3)
正如documentation中所述,除了某些chrome.*
方法之外,您无法在内容脚本中使用chrome.extension.*
API。
但是,这并不会限制您,因为您可以使用messaging从后台页面调用内容脚本。例如;
<强> background.html 强>
<script type="application/javascript">
chrome.browserAction.onClicked.addListener(function() {
chrome.tabs.getSelected(function (tab) {
chrome.tabs.sendRequest(tab.id, {title: 'new page title'}, function (response) {});
});
});
</script>
<强> changetitle.js 强>
chrome.extension.onRequest.addListener(function (request, sender, sendResponse) {
document.title = request.title;
});
您当然需要tabs权限才能使用此技术。
答案 1 :(得分:2)
这个适用于任何URI Scheme
<强>的manifest.json 强>
{
"name": "Page Title changer",
"version": "1.0",
"description": "Change the <title></title> of a page",
"browser_action": {
"default_icon": "icon.png"
},
"background_page": "background.html",
"permissions": [
"tabs"
]
}
<强> background.html 强>
chrome.browserAction.onClicked.addListener(function () {
chrome.tabs.executeScript(null, {
file: "changetitle.js"
});
});
<强> changetitle.js 强>
document.title = 'new page title';
答案 2 :(得分:1)
试试这个:
chrome.browserAction.onClicked.addListener(function () {
chrome.tabs.executeScript(null, {
code: "document.title = 'new page title'"
});
});