[英]How to properly set events for dynamic XUL elements?
我有一个生成动态工具栏扩展toolbarbutton
和menuitem
的元素。 这些项目通常构造如下:
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.