1

Google Chrome 拡張機能を開発していますが、修正できないエラーが発生します。

私の manifest.json は次のようになります。

{
    "name": "my extension",
    "version": "1.0",
    "background_page": "background.html",
    "permissions": [
        "tabs",
        "<all_urls>"
    ],
    "content_scripts": [
        {
            "matches": ["<all_urls>"],
            "js": ["content.js"],
            "all_frames": true
        }
    ]
}

background.html は content.js と対話しようとします:

<script>
chrome.tabs.onUpdated.addListener
(
    function(tabId, changeInfo) 
    { 
        chrome.tabs.sendRequest(tabId, {action : 'getMyValue'}, function(output) {
            console.log(output);
        });
    }
);
</script>

最後に、content.js:

chrome.extension.onRequest.addListener(function(request, sender, callback)
{
    if (request.action == 'getMyValue')
    {    
        callback('test');
    }
});

開発者ツール コンソールの出力: 「ポート エラー: 接続を確立できませんでした。受信側が存在しません。」行 232 の「miscellaneous_bindings」にあります。

何か案は?

4

1 に答える 1

4

chrome.tabs.onUpdatedタブが更新されたときに実行されます。開発ツール、クローム(拡張)ページなども含まれています。エラーを取り除くには、アクセスできないURLをフィルタリングする必要があります。

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo) {
    // Example: allow http:, https: and file:
    if (changeInfo.status === 'complete' &&
       /^(https?|file):/.test(changeInfo.url)) {
        chrome.tabs.sendRequest(tabId, {action: 'getMyValue'}, function(output) {
            console.log(output);
        });
    }
});
于 2012-07-04T15:52:28.463 に答える