0

问题很简单:如果为 chrome 做扩展并使用

chrome.pageAction

将图标放在地址栏中,此扩展在开发模式下不起作用。为什么不 ?

背景.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>
4

1 回答 1

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);
于 2012-12-20T01:46:29.373 回答