【问题标题】:dblclick event in Firefox extensionFirefox 扩展中的 dblclick 事件
【发布时间】:2019-07-14 00:27:34
【问题描述】:

我在 firefox 扩展中使用以下代码,当双击事件发生时应该会发出警报,但是当我双击时没有任何反应。

var Test = {
x: function(e) {
  alert(e.target.defaultView.location.href);
}

}

window.addEventListener("dblclick", function(e) { Test.x(); }. false);

【问题讨论】:

  • -1 用于在此处发布代码而不是检查错误控制台 - 错字是您应该完全有能力自己解决的问题。
  • @Wladimir Palant 有一个错字,但还是有问题。我想在事件的网页上显示一些信息,当我提醒(“你好”)它可以工作但上面的代码不起作用。
  • 这是另一种情况,您应该首先检查错误控制台 - 它可能显示“e.target.defaultView 未定义”。因为e.target 不是文档,而是您单击的元素。换句话说,它应该是e.target.ownerDocument.defaultView编辑:哦,好吧,@Shef 也说了。
  • @Wladimir Palant 谢谢,这行得通。

标签: javascript events firefox-addon dom-events double-click


【解决方案1】:

尝试将最后一个参数前的点改为逗号:

window.addEventListener("dblclick", function(e) { Test.x(); }, false);
//                                                          .^.
//                                                           | here...

更新

您的闭包还期望将参数e 传递给它:

window.addEventListener("dblclick", function(e) { Test.x(e); }, false);

【讨论】:

  • @Shef 错字不是唯一的问题。
  • @Shef 我尝试了更新,但结果没有差异。
  • @Shef 共有三个错误。第三是弗拉基米尔帕兰特在对问题的评论中建议了我。
【解决方案2】:

检查错误控制台。您似乎有语法错误。

var Test = {
x: function(e) {
  alert(e.target.defaultView.location.href);
}

};

var 语句的末尾添加了缺少的分号。 @shef 关于逗号也是正确的。

【讨论】:

  • JS 是一种关于分号的“忘记”语言,这就是它起作用的原因。但是,避免使用分号并不是一个好习惯,也不应该这样做。
  • 命名空间后面缺少分号是可以的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多