gpt4 book ai didi

javascript - 如何从 XUL 中的命令事件中按下鼠标按钮?

转载 作者:行者123 更新时间:2023-12-02 20:48:42 25 4
gpt4 key购买 nike

看起来 XUL 命令和点击事件有些不同。

尽管在使用 command 事件时确实调用了我的函数,但事件对象不包含 button 属性。

我的问题是:如何在不使用click事件的情况下检测按下的鼠标按钮?

可以演示我的问题的最简单的代码:

<?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>

最佳答案

要记住的主要事情是,任何导致按钮激活的操作都会触发 oncommand ,其中包括使用键盘在按钮获得焦点时按空格键附加到按钮的快捷方式,或用鼠标单击按钮。事件处理程序实际上并不应该关心它是如何调用的,而只是关心它是如何调用的。 (我想这是一个有意识的决定,以保持一致的用户界面。)

导致按钮属性添加到 Event 对象的唯一操作是 onclickondblclickonmousedown onmouseup。您会注意到,即使禁用 onclick 按钮,该事件仍然会触发,而使用 oncommand 则不会。

要获得与 oncommand 相同的功能,您需要自己处理 onclickonkeydown 事件,同时确保按钮处于可用状态仍然启用。您还可以使用 XBL 创建自定义按钮,该按钮具有诸如 onleftclickonmiddleclick 之类的自定义事件,然后如果满足,则回退到 oncommand未设置——但我还没有尝试过。

关于javascript - 如何从 XUL 中的命令事件中按下鼠标按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/294340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com