admin管理员组

文章数量:1626377

1.微信内置浏览器(或QQ浏览器或safari浏览器)无法识别onclick事件的解决( 前面没耐心看的,直接看最后的总结         对于这类不兼容的问题真的是很磨人,比较浪费时间,对于技术大牛可能不是问题,但是对于新手来说,可能就是个好几天无法解决的bug了。         现在市场份额最大的是google浏览器,它对各种前端语言兼容的最多,就如题目中所描述的问题,google浏览器很完美的兼容了。         问题主要出现在这里,html中的a 标签和li标签中的onclick事件在window.οnlοad=function(){}里或者$(document).ready(function(){})里无法识别在QQ浏览器和safari浏览器中,也就是说,android手机里的chrome浏览器能够识别onclick事件,但是在ios手机里的safari浏览器识别不出来,或者在QQ浏览器里无法识别该事件。         糟心的是项目的开发是基于微信的,坑爹啊有木有!微信内置的浏览器肯定是用他们自己家的浏览器啊(QQ浏览器),所以根本就识别不出来,而且更坑爹的是有一大群人在用ios手机啊啊啊啊啊!,这尼玛项目开发必须要考虑这两点啊,那么怎么解决呢?         很简单,博主我当初困惑了两三天,查了大量资料,也试了,但是都没用,最后是用另外一个事件名给解决的,下面是方法: 例子: html:
<li οnclick="myFunction()">
js:
window.onload = function(){
    function myFunction(){......}
}
QQ浏览器和safari浏览器:噢,谢特!它不是我儿子!我们识别不出来...

解决: html:
<li ontouch="myFunction()">
js:
window.onload = function(){
    function myFunction(){......}
}
主要是通过将onclick事件变为ontouch事件了,可能是因为移动端跟PC端的差别吧。 结果: QQ浏览器和safari浏览器:噢,我的上帝啊!它是我儿子!
总结: 问题的解决其实就是在li标签里面添加一个与onclick类似的事件名ontouch就解决了。 多试一试触发事件名,可能会得到意向不到的效果。

本文标签: 浏览器无法识别事件端微信onclick