0

問題は非常に単純です: クロムの拡張機能を作成して使用する場合

chrome.pageAction

アドレスバー内にアイコンを配置するには、この拡張機能は開発モードでは機能しません。なぜだめですか ?

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>
4

1 に答える 1

1

Konrad Dzwinelのコメントに貢献しているため、HTMLでインラインコードを使用することはできません。それを外部JavaScriptに移動してから、再試行してください。

ちなみに、ページアクションは開発モードで動作します。私はいつもそれらを使用しています!これが私の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 に答える