tru*_*ktr 7 google-chrome chromium google-chrome-extension
我不知道该怎么做,文档似乎没有让这个显而易见.
我尝试制作background_page并放入chrome.pageAction.show(tab.id);其中,但这似乎不起作用.
我不想使用该browser_action图标,因为该图标仅反映了插件的状态,但它不是用于执行任何操作的按钮.
如何在任何页面/标签的地址栏中添加page_action的图标?
编辑:这是我的manifest.json:
{
"name": "My Very First Extension :D",
"version": "0.0.1",
"description": "Awesomeness",
"background_page": "background.html",
"page_action": {
"default_icon": "icon.png"
},
"content_scripts": [{
"matches": ["http://*/*", "https://*/*"],
"js": ["mmm.js"]
}]
}
Run Code Online (Sandbox Code Playgroud)
其中icon.png是一个19x19像素的PNG图形.这是background.html源代码,我正在尝试为所有选项卡显示page_action图标:
<!DOCTYPE html>
<html>
<head>
<script>
chrome.pageAction.show(tab.id);
</script>
</head>
</html>
Run Code Online (Sandbox Code Playgroud)
Ste*_*ris 14
您不能在后台页面中使用内联脚本块 - js代码只能从链接脚本运行(如下所示:) <script type="text/javascript" src="background.js"></script>.这是因为内容安全策略.
正如亚伯拉罕的回答所述,由于您希望所有页面都显示图标,因此您应该使用browser_action,而不是page_action.根据Google的pageAction文档页面:
不要将页面操作用于对大多数页面有意义的功能.请改用浏览器操作.
页面操作的图标显示在omnibar(Chrome的地址栏)中,而浏览器操作的图标显示为omnibar旁边的工具栏按钮.可以用来反映插件的状态和操作按钮.
要显示图标,您必须致电:chrome.pageAction.show(tabId).但是,您不能只从内容脚本调用它,因为chrome.pageAction.show()必须传递tabId,并且从chrome.tabs检索tabId,并且无法从内容脚本访问chrome.tabs.
要添加浏览器操作按钮并在单击时定义其行为,请在manifest.json文件中定义browser_action元素...
"browser_action": {
"default_title": "action description",
"default_icon": "icon.png"
}
Run Code Online (Sandbox Code Playgroud)
...并将此代码放在后台脚本中:
// Define behavior when browser action icon is clicked
chrome.browserAction.onClicked.addListener(function(tab) {
// executed when the user clicks on the browser action icon
});
Run Code Online (Sandbox Code Playgroud)
或者,如果您想违反约定并使用pageAction,您可以使用问题中的manifest.json代码并将以下内容放入后台脚本:
// Show page action icon in omnibar.
function showPageAction( tabId, changeInfo, tab ) {
chrome.pageAction.show(tabId);
};
// Call the above function when the url of a tab changes.
chrome.tabs.onUpdated.addListener(showPageAction);
Run Code Online (Sandbox Code Playgroud)
有关进一步研究,请查看其部分示例扩展的源代码.
| 归档时间: |
|
| 查看次数: |
11136 次 |
| 最近记录: |