AddonSK:窗口如何来自require(' sdk / window / utils')。openDialog与main.js脚本交互?

时间:2015-08-17 14:21:06

标签: firefox-addon-sdk

我正在编写一个FF插件SDK插件。

我的main.js打开一个弹出窗口:

var win = require('sdk/window/utils').openDialog({
        url:"http://www.example.com/index.html",
        features: Object.keys({
            resizable: true,
            scrollbars: true
        }).join(),
        name: "myWin"    
    });

我需要窗口将数据发送到main.js(index.html是一个外部HTTP经典html / JS页面)

2 个答案:

答案 0 :(得分:0)

1:添加content script。     使用pageModtabs API,将js文件注入http://www.example.com/index.html页面。

2:来自内容脚本的sending message,然后在main.js中添加一个消息监听器

答案 1 :(得分:0)

main.js

var tab = win.tabs[0]; // as it is a pop-up window I assume it has only one tab

// attach content script to tab and access worker object  
var worker = tab.attach({
  contentScriptFile: self.data.url('popup_window_script.js'), //        script from file
  contentScript:     ''                                       // and/or script from string
});

// listen to worker / popup_window_script.js
worker.port.on('msg_from_popup_window_script_js', function ( msg ) {
  // your code
});

// speak to worker / popup_window_script.js
worker.port.emit('msg_from_main_js', 'your message');

popup_window_script.js

// listen (to main.js)
self.port.on('msg_from_main_js', function ( msg ) {
  // your code
});

// speak (to main.js)
self.port.emit('msg_from_popup_window_script_js', 'your message');