1

私はまだ非常に単純なことをしています...私はそれを理解できません。変数を取得するだけの拡張機能を作成しました。Web ページからその変数にアクセスできるようにしたいと考えています。何かご意見は?

私がこれを行っている理由を少し説明します。この変数を取得するにはクロムにアクセスする必要があったため、最初にこの拡張機能を作成しました。

4

1 に答える 1

0

次のリンクを参照してください:クロム (特権) から非特権のドキュメント (Web ページ) にデータを送信する際のコード サンプルの特権ページと非特権ページの間の相互作用。

拡張子で:

var myExtension =
{
  myListener: function(evt)
  {
    alert("Received from web page: " + 
           evt.target.getAttribute("attribute1") + "/" +
           evt.target.getAttribute("attribute2"));

/* the extension answers the page*/
    evt.target.setAttribute("attribute3", "The extension");

    var doc = evt.target.ownerDocument;

    var AnswerEvt = doc.createElement("MyExtensionAnswer");
    AnswerEvt.setAttribute("Part1", "answers this.");

    doc.documentElement.appendChild(AnswerEvt);

    var event = doc.createEvent("HTMLEvents");
    event.initEvent("MyAnswerEvent", true, false);
    AnswerEvt.dispatchEvent(event);
  }
}

document.addEventListener("MyExtensionEvent", function(e) { myExtension.myListener(e); }, false, true);
// The last value is a Mozilla-specific value to indicate untrusted content is allowed to trigger the event.

ウェブページで:

document.addEventListener("MyAnswerEvent",function(e) { ExtensionAnswer(e); },false);

var element;

function CallExtension()
{
  var element = document.createElement("MyExtensionDataElement");
  element.setAttribute("attribute1", "foobar");
  element.setAttribute("attribute2", "hello world");
  document.documentElement.appendChild(element);
  var evt = document.createEvent("Events");
  evt.initEvent("MyExtensionEvent", true, false);
  element.dispatchEvent(evt);
}

function ExtensionAnswer(EvtAnswer)
{
  alert(element.getAttribute("attribute3") + " " +
        EvtAnswer.target.getAttribute("Part1"));
}

お役に立てれば。

于 2013-03-28T14:07:20.710 に答える