繁体   English   中英

如何正确设置动态XUL元素的事件?

[英]How to properly set events for dynamic XUL elements?

我有一个生成动态工具栏扩展toolbarbuttonmenuitem的元素。 这些项目通常构造如下:

tempMenuItem = document.createElement("menuitem");
tempMenuItem.setAttribute("label",  "Some Label");
tempMenuItem.setAttribute("tooltiptext", "Some Tooltip");
tempMenuItem.setAttribute("oncommand", "myObject.someFunction()");

这段代码工作得很好,但是当我将我的扩展提交到官方附加存储库时,我收到以下警告:

on *属性使用setAttribute设置

警告:为防止漏洞,应始终使用addEventListener定义事件处理程序(如“onclick”和“onhover”)。

我还能为这些动态元素设置合适的命令处理程序吗? 我知道这只是一个警告,但作为一个强迫性的程序员,我想以最干净的方式做事。 有一个更好的方法吗?

好吧,你显然使用addEventListener()方法作为建议说:

tempMenuItem.addEventListener("command", function(event)
{
  myObject.someFunction();
}, false);

如果你也使用Function.bind()方法,或者更短一些:

tempMenuItem.addEventListener("command", myObject.someFunction.bind(myObject), false);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM