4

Google Chrome拡張機能の場合、拡張機能popup.htmlのDOMを操作するために作成したJavascriptは、ポップアップのDOMに影響を与えないようです。content_script.jsを使用して、ブラウザで現在のWebページのDOMをうまく操作できます。また、Webページからデータを取得して、次のように拡張ポップアップに出力することに関心があります(以下:popup.html)。

<div id="extensionpopupcontent">Links</div>
<a onclick="click()">Some Link</a>

<script type="text/javascript">
 function click() {
  chrome.tabs.executeScript(null, {file: "content_script.js"});
  document.getElementById("extensionpopupcontent").innerHTML = variableDefinedInContentScript;
  window.close();
 }
</script>

http://code.google.com/chrome/extensions/messaging.htmlのドキュメントからchrome.extension.sendRequestを使用してみましたが、私の場合、特に挨拶と応答。

contentscript.js
================
chrome.extension.sendRequest({greeting: "hello"}, function(response) {
  console.log(response.farewell);
});
4

1 に答える 1

2

これまでのところ、あなたがしたことは正しいです。欠けている唯一のことは、コンテンツ スクリプトからポップアップに返されるメッセージを処理するためにchrome.extension.onRequestイベント リスナーをセットアップする必要があることです。

したがって、ポップアップで次のようなことを行うとうまくいくはずです(追加):

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
  if (sender.tab && request.greeting == "hello")
    sendResponse({farewell: "goodbye"});
  else
    sendResponse({}); // snub them.
});

上記のスニペットが行うことは、コンテンツ スクリプトからのイベントをリッスンすることです (コンテンツ スクリプトからのイベントの場合は、sender.tab == true)。

メッセージングに関するページ全体を読むと、これらすべてが素晴らしい例で説明されています: http://code.google.com/chrome/extensions/messaging.html

于 2010-05-26T18:27:37.073 に答える