Javascript 为什么复选框是';当其标签被按住shift键单击时,是否在FF中未激发s click处理程序?

Javascript 为什么复选框是';当其标签被按住shift键单击时,是否在FF中未激发s click处理程序?,javascript,events,firefox,Javascript,Events,Firefox,在下面的代码中,当shift单击标签时,为什么复选框的click处理程序没有在FF中触发?Chrome和IE11都会启动它 <script> function show(event) { alert((event.srcElement||event.target).id); }; </script> <input type="checkbox" id="checkbox" onclick="show(event);" /> &l

在下面的代码中,当shift单击标签时,为什么复选框的click处理程序没有在FF中触发?Chrome和IE11都会启动它

<script>
    function show(event) {
        alert((event.srcElement||event.target).id);
    };
</script>
<input type="checkbox" id="checkbox" onclick="show(event);" />
<label for="checkbox" id="label" onclick="show(event);">Click me!</label>

功能展示(活动){
警报((event.srcmelement | | event.target).id);
};
点击我!

拨弄:

可能是因为按住shift键单击标签不会在Firefox中切换复选框?

按住shift键单击与在Firefox中单击有不同的默认操作。前者扩展了文本选择。后者执行激活。由于激活是触发单击复选框的操作,因此您无法单击它。就像在标签上单击鼠标右键一样。

好的。但这是一个bug、一种非标准行为还是浏览器供应商可以自由控制的东西?我是否应该发送错误报告并等待修复,然后更新代码?或者我应该绕过它,让我的代码更复杂?我认为浏览器应该在这样的基本情况下以同样的方式运行,以避免我们编写三倍于浏览器兼容性的代码。现在是2014年。呃,这有什么关系?顺便说一句,没有任何规范提到在按住shift键单击内置元素时应该发生什么。这很重要,因为我想编写未来的代码。如果像这样的差异在浏览器的行为中是正常的,我想我需要使用jQuery,而不是不断地检查我的变通方法是否仍然需要,或者浏览器供应商是否改变了主意。如果像这样的事情被认为是错误,我最好报告它。现在我发现在这个话题上没有普遍接受的观点,所以我需要自己做出决定。谢谢你的帮助!根据您的回答,我认为正确的答案是这样的:“因为对于按下复选框标签元素的shift键的行为,浏览器供应商没有要遵循的规范。”我说得对吗?“标签元素的确切默认表示和行为,特别是其激活行为可能是什么,如果有的话,应该与平台的标签行为相匹配。“-按住Shift键并单击“我的平台”上的复选框标签会选中该复选框,因此也应根据建议在FF中选中该复选框。令人遗憾的是,他们没有遵循建议,但这似乎不是一个bug。不过,我还是会要求他们改变这种行为。哦,现在我明白了Firefox开发者的理由:他们想让label的文本选择成为可能,而不激活复选框。但这已经是可能的,就像在链接的情况下一样:通过单击文本下方或上方开始选择。我同意FF方法更舒适,但忽略规范这种方式间接导致更糟糕的用户体验,通过浏览器不兼容。。。但这是一个完全不同的问题,所以谢谢你的解释。:)