移动端微信内置浏览器(或QQ浏览器)无法识别onclick事件的解决 忘是亡心i 2021-06-24 15:58 685阅读 0赞 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就解决了。 多试一试触发事件名,可能会得到意向不到的效果。
还没有评论,来说两句吧...