最近由于项目需要,支援到了微信公众号开发小组,在调试过程中发现,部分页面的跳转,在iOS的微信公众号上无法跳转,始终在原来的页面上。但是在安卓的微信公众号上却能够完美跳转。按理说同是腾讯旗下的微信,同样的URL,不应该会出现这样的情况。
经过与度娘半个小时的交流,最后找到两个方案,别问我为什么需要找这么久,因为这个问题我都不知道怎么描述。
方案一:
在你的URL最后添加一个随机的参数,这样写的原因,是可能浏览器认为你需要跳转的URL与当前页面的URL是一样,所以加上随机参数,能够解决(但是这个方案对我的问题不管用,但是放出来,或许能帮到一些人)
方案二:
舍弃href属性,在<a>标签中使用onclick方法:onclick="window.location = 'URL' ",href:"###",完美解决问题。
为什么?
至于为什么这样能够解决问题,我至今没有找到合理的解释,原谅我还在半路出家的路上,之后知道了会上来更新,有知道为什么的前端大神,也望留言赐教。但是秉承求学的追求知其所以然精神,我还是和度娘又谈了半个小时,以下是我找到的,或许有帮助:
1.两者执行顺序不一样,onclick先于href属性,如果onclick函数不返回false,在onclick函数执行完之后,还是会继续执行href函数中的URL。
2.href:"###",一个#,在你点击的时候,链接会先跳到页面的顶部,然后开始跳转,而三个#不会跳转到页面顶部。href="javascript:void(0)",为什么不用这样的伪协议,因为不能平稳退化,当用户浏览器对JS失效或禁用时点击后什么意义都没有,而且这样写会影响排名,因为大多数浏览器搜索不到它。