给出以下
HTML:
<div contenteditable="true">Some text</div>
还有一些用JQuery检测click事件的JS:
$("div").click(function() {
alert('click!');
});
如果选择div中文本的一部分,Opera将不会抛出click事件(在Linux上使用Opera 11.61,在Windows上使用11.62进行测试).双击某个单词以对其进行部分标记确实有效.
该事件在IE7-9,Firefox,Chrome和Safari中引发.有一个略微修改的JSFiddle here.
这是预期的行为,JQuery错误,Opera错误还是其他什么?
哪种行为是“正确的”当然是一个有趣的问题.我接受它:我个人认为Opera的行为更有意义,因为
用户打算在这里做的事情显然不是“点击”某些东西而是“选择”某些东西.
另一方面,我也认为Opera应该将其更改为与其他浏览器兼容(除非我们可以让其他浏览器与Opera匹配).兼容性非常非常重要.所以,与我的Opera员工谈谈:我认为我们是正确的,我认为我们应该解决这个问题:-p