Javascript 如何在XUL中从命令事件中按下鼠标按钮?
似乎XUL命令和单击事件有些不同 虽然使用命令事件时会调用my函数,但事件对象不包含button属性 我的问题是:如何检测在不使用单击事件的情况下按下的鼠标按钮? 可以演示我的问题的最简单代码:Javascript 如何在XUL中从命令事件中按下鼠标按钮?,javascript,xul,Javascript,Xul,似乎XUL命令和单击事件有些不同 虽然使用命令事件时会调用my函数,但事件对象不包含button属性 我的问题是:如何检测在不使用单击事件的情况下按下的鼠标按钮? 可以演示我的问题的最简单代码: <?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id="yourwindow" xmlns="http://www.mozilla.
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="yourwindow" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script language="JavaScript">
var showMeTheButton=function(e)
{
alert(e.button);
}
</script>
<button onclick="showMeTheButton(event)" label="Click me with onclick"></button>
<button oncommand="showMeTheButton(event)" label="Click me with oncommand"></button>
</window>
var showMeTheButton=函数(e)
{
警报(e.按钮);
}
要记住的主要一点是,任何导致按钮激活的操作都会触发oncommand
,包括在按钮有焦点时按下空格键、使用按钮上的快捷键或用鼠标单击按钮。事件处理程序实际上并不关心它是如何被调用的,只关心它是如何被调用的。(我想这是一个有意识的决定,以保持一致的用户界面。)
导致按钮属性添加到事件对象的唯一操作是onclick
、ondblick
、onmousedown
和onmouseup
。您会注意到,即使禁用onclick
按钮,事件仍会激发,而oncommand
则不会激发
要获得与oncommand
相同的功能,您需要自己处理onclick
和onkeydown
事件,同时确保按钮仍处于启用状态。您还可以使用XBL创建一个自定义按钮,该按钮具有自定义事件,如onleftclick
或onmiddleclick
,如果未设置,则返回到oncommand
,但我没有尝试过