javascript - Firefox 扩展中的对象字面量

标签 javascript firefox-addon object-literal

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

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

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

最佳答案

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

关于javascript - Firefox 扩展中的对象字面量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4245393/

相关文章:

javascript - 我想单击一个元素来切换在完全不相关的元素(不是子元素、父元素或兄弟元素)上引用的类

javascript - 坏到固定实现

firefox-addon - 调试 SDK 插件时如何修改源代码而不重新运行 cfx 和 Firefox?

javascript - 火狐插件 SDK : Attache a JS code to all the frames of a page

javascript - 如何将键/值对添加到 JavaScript 对象?

javascript - 在 javascript 中指定对象文字内属性的不同方法

javascript - 为什么我的 Firefox 插件在将 Firefox 更新到版本 50 后不起作用

javascript - jQuery点击函数在另一个div中显示文本

javascript - 如何获取所有选项卡并在 firefox 中的特定选项卡 ID 上执行 javascript

javascript - 可以将一个对象字面量内的多个属性设置为相同的值吗?