Firefox addon firefox 30上的window.onload

Firefox addon firefox 30上的window.onload,firefox-addon,onload,firefox-addon-sdk,addeventlistener,Firefox Addon,Onload,Firefox Addon Sdk,Addeventlistener,我需要一些firefox插件的帮助。我有一个函数,它从页面中获取一些值,并使用它们填充新的窗口文本区域 var ticket = document.getElementsByName('ticket_id'); var addr = document.getElementsByName('address_id'); var text = "Your address is "+addr[0].value+", ticket number is "+ticket+","; smsWin = wind

我需要一些firefox插件的帮助。我有一个函数,它从页面中获取一些值,并使用它们填充新的窗口文本区域

var ticket = document.getElementsByName('ticket_id');
var addr = document.getElementsByName('address_id');
var text = "Your address is "+addr[0].value+", ticket number is "+ticket+",";
smsWin = window.open("http://mysite.net/", "New window", "height=250");

smsWin.onload = function () {
  smsWin.document.getElementById('textsms').innerHTML = text;
};
该函数由Firefox中的操作按钮调用

var button1 = require("sdk/ui/button/action").ActionButton({
  id: "style-tab1",
  label: "Do magic",
  icon: "./icon-64.png",
  onClick: function() {
    require("sdk/tabs").activeTab.attach({
      contentScriptFile: self.data.url("close.js")
    });
  }
});
它在ScratchPad和Firefox 29的插件中都能完美工作。但在最新的Firefox30中,smsWin.onload函数部分似乎不起作用(即使我在其中添加了警报('1')),而窗口仍然打开。有没有办法解决这个问题

UPD。 我也试过这个

smsWin.addEventListener("load", function() {
  smsWin.document.getElementById('textsms').value = text;
}, false);
它在插件中也不起作用(但在ScratchPad和FF29上起作用)。将
load
更改为
DOMContentLoaded
cnahgesnothing

从草稿行运行此功能的原因是您正在运行代码
窗口。打开(“http://mysite.net/“,”新窗口“,”高度=250“以“环境”>“内容”模式

如果在scratchpad中将“Environment”设置为“Browser”,则会看到它无法工作

无法从加载项代码执行window.open操作。如果要打开窗口,必须使用
服务。ww

在此处查看如何使用功能打开窗口:


好的,我看到您正在添加sdk,窗口打开不是问题,而是窗口加载。尝试使用
DOMContentLoaded


虽然sdk把我搞糊涂了。因为当窗口打开时,在窗口上触发的加载是在xul完成加载时触发的。然后就有了加载的页面。但是请尝试用
DOMContentLoaded
代替
load
,并告诉我它是如何工作的。

好的,我已经做了一些变通。由于安全更新,window.onload部分在FF30中似乎不起作用。但是如果窗口是一个iframe,那么它可以完美地工作。所以我只是用
var smsWin=document.createElement('iframe')修改了所需的页面
等等,突然
smsWin.onload=function(){…}
工作得非常好。

谢谢你的回答,我要试试。插件在FireFox 29中工作最可疑的部分,但我在30版本的变更日志中没有发现任何相关内容,只是它在FF29和ScratchPad中工作,但在FF30上没有。我仍然无法在变更日志中找到任何内容。
  var ww = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
                 .getService(Components.interfaces.nsIWindowWatcher)

  ww.openWindow(null, "chrome://browser/content/browser.xul", "_blank",
       "chrome,all,dialog=no", "http://www.gemme.pl/");