Firefox扩展中的Object Literal

时间:2010-11-22 12:29:50

标签: javascript firefox-addon object-literal

我有一个扩展程序,需要弹出一个窗口然后关闭它。

 var my_extension = {
    window: null,
    popup: function(){
       my_extension.window = window.open(...)
    },
    close: function(){
       my_extension.window.close()
    }
 }

弹出窗口调用close函数。但是,从open打开后,my_extension.window为null。我检查以确保它设置为弹出窗口。弹出窗口返回时是否创建了另一个my_extension实例?

1 个答案:

答案 0 :(得分:0)

my_extension在主浏览器窗口中定义,而不是在弹出窗口中定义。要从弹出窗口本身关闭弹出窗口,只需使用window.close

编辑:好的,所以我猜my_extension.close实际上看起来像是:

function() {
  // check input from popup window
  if (everythingIsGood) {
    my_extension.window.close()
  }
}

在这种情况下,我建议你在弹出窗口中进行验证。我知道,你不想在弹出窗口中放入很多代码。并且我同意。但是,当您打开弹出窗口时,您可以传入进行验证所需的任何信息(包括传递验证函数 - 记住函数也是对象,因为JavaScript很酷!)在此页面上查看window.arguments的讨论:https://developer.mozilla.org/en/DOM/window.openDialog