10/12/2010

content_scripts と background_page でデータをやり取りする [Chrome Extensions を作ってみる:第五回]

Safari Extensions での「スクリプト」と「グローバルページ」でデータをやり取りするように、Chrome Extension でもやり取りが当然できる。しかも Safari Extensions よりも簡単にできる。

★content_scripts
// 変数 msg に "send" を格納
var msg = "send";
// sendRequest で background_page に送信
chrome.extension.sendRequest({action: "chgMsg", text: msg}, function(rcv) {
// function(rcv) がコールバックとして受信時に発動
  getMsg(rcv);
});
// コールバック受信により発動
function getMsg(afterMsg) {
  alert("after:" + afterMsg);
}

★background_page 内の Javascript
// request には action と text が格納されている
function getMessages(request, sender, callback) {
// コールバック用としての callback に返信用として "received" を格納
  if (request.action == "chgMsg") callback("received");
}
// content_scripts での sendRequest を受信
chrome.extension.onRequest.addListener(getMessages);

結果、「after:recieved」という文字列がアラートとして表示される。

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.