Javascript Android chrome pageY值是否随着最新chrome更新而改变?
最新版本的android chrome是否破坏了jquery页面的值,或者我完全遗漏了什么? 特别是从鼠标事件返回的pageX/pageY值Javascript Android chrome pageY值是否随着最新chrome更新而改变?,javascript,android,jquery,google-chrome,Javascript,Android,Jquery,Google Chrome,最新版本的android chrome是否破坏了jquery页面的值,或者我完全遗漏了什么? 特别是从鼠标事件返回的pageX/pageY值 <script> $( document ).on( "click", function( event ) { $( "#log" ).text( "pageX: " + event.pageX + ", pageY: " + event.pageY ); }); </script> $(文档)。在(“单击”)上,函数(事件
<script>
$( document ).on( "click", function( event ) {
$( "#log" ).text( "pageX: " + event.pageX + ", pageY: " + event.pageY );
});
</script>
$(文档)。在(“单击”)上,函数(事件){
$(“#log”).text(“pageX:+event.pageX+”,pageY:+event.pageY);
});
在Windows Chrome或Android Firefox上,一切看起来都很棒。对于android chrome,点击/悬停时此页面上显示的值是错误的。负数、大于预期的数字、缩放/滚动时数字会发生变化(不应该发生变化)等等。我在JSFIDLE站点上尝试了两种不同版本的jquery,所有这些都是针对android chrome的
这把小提琴改成了“点击”而不是“鼠标移动”:
同样,台式机、iphone和android firefox也能正常工作。安卓chrome 38.0.2125.102看起来很破
我在生产中有代码,希望pageY是。。。精确的那个密码已经有一段时间没变了,突然间,情况发生了变化
想法?还有人看到了吗?这东西总是不知怎么坏的吗
我在Nexus 5上的Android 38.0.2125.102版Chrome上也看到了这一点。我不确定这个bug是什么时候引入的,但它现在破坏了我们在查找event.pageY值时所依赖的代码
我检查了我的设备,很明显报告的event.pageY值与桌面相比是错误的。同样,Android版Chrome(32.0.1700.99)的早期版本也会报告正确的event.pageY值。因此这是一个糟糕的攻击。我讨厌把版本字符串放在浏览器的变通方法中。我试着根据窗口偏移量或你点击的项目的大小来做一个,但是如果图像足够大,它不会100%的工作。希望这会很快得到修复,但如果你来这里寻找Android Chrome中这个特定错误的答案,下面是我修复它的方法 android chrome的未来版本可能也有同样的bug,我们可能需要一个被破坏版本的运行列表。如果你来到这个页面时有不同的坏版本,请把它放在下面的评论中。(请就铬问题进行投票。)
我已经创建了一个罚单,可能会将你的.02c添加到我的chromium bug上。刚刚添加了它!谢谢你提交。
var clientY = evt.clientY;
var clientX = evt.clientX;
var pageX = evt.pageX;
var pageY = evt.pageY;
if(window.navigator.appVersion.match(/Chrome\/(.*?) /)[1] == "38.0.2125.102"){
//hack to fix the chromium bug
//https://code.google.com/p/chromium/issues/detail?id=423802
clientX -= window.scrollX;
clientY -= window.scrollY;
pageX -= window.scrollX;
pageY -= window.scrollY;
}