问题很简单:如果为chrome做扩展并使用
chrome.pageAction
将图标放在地址栏中,此扩展程序在developmode中不起作用。为什么不呢?
background.html
<script language="javascript">
chrome.pageAction.onClicked.addListener(function (tab) {
chrome.tabs.executeScript(tab.id, {
file: "jquery.js"
}, function () {
chrome.tabs.executeScript(tab.id, {
code: '$[CODE JQUERY];'
});
});
});
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
if(tab.url.indexOf("facebook.com") != -1) {
chrome.pageAction.show(tabId);
}
});
</script>
答案 0 :(得分:1)
有助于Konrad Dzwinel发表评论,您不能在HTML中使用内联代码。将其移至外部JavaScript,然后重试。
顺便说一下,Page Actions在开发模式下工作,我一直都在使用它们!这是我的Background.js中的一个示例,它检查更新的选项卡上的页面URL;如果URL是我正在寻找的,我会显示页面操作。
/**
* Listener for Displaying the Extension Page Action when the Tab is updated.
* @private
* @event displayPageAction
* @param {Number} tabId The tabId given by the tabs listener to know which tab was updated.
* @param {Object} changeInfo The current status of the tab.
* @param {Object} tab The metadata of the tab.
**/
var displayPageAction = function (tabId, changeInfo, tab) {
var regexAIESEC = new RegExp(/http:\/\/www.myaiesec.net\//); // My page URL
var match = regexAIESEC.exec(tab.url);
// We only display the Page Action if we are inside a MyAIESEC Page AND it finished loading.
if(match && changeInfo.status == 'complete') {
chrome.pageAction.show(tab.id);
}
};
您可以通过onUpdated甚至处理程序选项卡回调此代码。
chrome.tabs.onUpdated.addListener(displayPageAction);