2016-04-27 9 views
2

私は現在のWebページでいくつかのイベントをトリガするためにメッセージをある程度渡す必要があるクロム拡張機能に取り組んでいます。バックグラウンドページからdevtoolページに一度のメッセージを送信

私はchrome.runtime.sendMessageを使用して、devtoolページからバックグラウンドページにメッセージを送信しています。バックグラウンドページでは、chrome.runtime.onMessage.addListenerを使用してこれらのメッセージを取得しています。

これを使用して、バックグラウンドページからdevtoolsページにメッセージを送信できません! バックグラウンドページからdevtoolページに1回のメッセージを送信するにはどうすればよいですか?

devtool.js

chrome.runtime.onMessage.addListener(function(request){ 
if(request.name=="xyz") 
{ 
    alert("HI"); 
} 
}); 

background.js

chrome.runtime.sendMessage({ 
    name : "xyz" 
}); 

誰かがそれを助けることはできますか?

+2

この[フォーラム](https://groups.google.com/forum/#!msg/google-chrome-developer-tools/Q3DbtWRlgLo/kEYPaW8h0sgJ)に基づいて、 'chrome.extension.sendMessage () 'を使用して、DevToolsのコンテキストで実行されている拡張ページにメッセージを送信します。バックグラウンドページからDevToolsに通信する最も良い方法は、 'chrome.extension.connect'を使ってDevToolsページからポートを開き、後でバックグラウンドページでport.postMessage()を使うことです。 – abielita

+2

@abielita _Please_答えにコメントをつけてください(ただし、 'extension'は' runtime'に置き換えてください)。 – Xan

答えて

0

forumから、chrome.runtime.sendMessage()を使用して、DevToolsのコンテキストで実行されている拡張ページにメッセージを送信することはできません。バックグラウンドページからDevToolsに通信する最善の方法は、DevToolsページからchrome.runtime.connectを使用してポートを開き、後でバックグラウンドページでport.postMessage()を使用することです。

0

ご興味のある方は、すべての作業を行う小さなライブラリを作成して、拡張機能のすべての部分(具体的にはバックグラウンドからdevtoolまで)にメッセージを簡単に送信できます。

あなたはここでそれをチェックアウトすることができます:chrome-ext-messenger

は、あなたがそれを使用する方法についての質問があれば私に連絡すること自由に感じ。

関連する問題