0

バックグラウンド スクリプトにいくつかのコードがあります。私は次のようなものを発射できるようにしたい:

$(document).trigger('someEvent', [args]);

そして、ポップアップで次のようなものでそれを聞きます:

var backgroundPage = chrome.extension.getBackgroundPage();
$(backgroundPage.document).bind('someEvent', function (args) {...});

しかし、それはうまくいきません。トリガー コードがトリガーされますが、明らかに正しいものにバインドしていません。ヘルプ?

4

1 に答える 1

2

私はJQueryをよく知らないので、助けにはなりませんが、JSのように動作しているように見えることを指摘したいと思いました....

マニフェスト.json

{
  "name": "TEST - Background to PopUp Event Triggering",
  "version": "1.0",
  "permissions": [
    "tabs", "http://*/*", "https://*/*"
  ],
  "browser_action": {
      "default_title": "TEST - Background to PopUp Event Triggering",
      "default_icon": "icon.png",
      "default_popup": "popup.html"
  },
   "background": {
    "scripts": ["background.js"]
  },
  "manifest_version" : 2
}

popup.html

<!doctype html>
<html>
  <head>
    <script src="popup.js"></script>
  </head>
  <body>
  </body>
</html>

popup.js

var backgroundPage = chrome.extension.getBackgroundPage();

backgroundPage.document.addEventListener('myCustomEvent', function(e) {
    document.write(e.args + '\n');
})

background.js

var customEvent = document.createEvent('Event');
customEvent.initEvent('myCustomEvent', true, true);

setInterval(function() {
    customEvent.args=["bunyips","smell"];
    document.dispatchEvent(customEvent);
}, 3000);
于 2012-07-27T20:42:09.913 に答える