龙空技术网

分享一个超链接跳转默认行为的BUG,涉及到safari、手百、夸克

抄写并背诵全文 197

前言:

如今兄弟们对“超链接调用js”大概比较珍视,咱们都想要剖析一些“超链接调用js”的相关文章。那么小编同时在网上网罗了一些关于“超链接调用js””的相关知识,希望各位老铁们能喜欢,看官们快快来了解一下吧!

分享一个拦截超链接跳转默认行为的BUG,此BUG涉及到safari、手机百度、夸克等多个浏览器

前提:我在网站上,写了一个跳转页面用的转场效果,大概类似于这样:

为了在用户跳出页面的时候(比如点击超链接),能够播放出场动画,我对需要播放出场动画的超链接前加了这样一个事件:

<a onclick="if (this.href== 'javascript:;') {return false;}else {linkStart('out');setTimeout(()=> {window.open(this.href)},1500);return false;}"href="//xxx"></a>

这样可以拦截超链接跳转的默认行为,在播放1.5s动画后,再调用window.open跳转到链接。

但是IOS系统下的浏览器、夸克、手机百度等有这么一个问题:

window.open中的this.href,会被后面的return false拦截,导致浏览器只能播放转场动画,而不会跳转。

解决方法:把超链接a标签换成button,把链接存到一个对象里,把整个动画播放+跳转逻辑封装为一个function,onclick事件(我用的vue3,所以直接@click了)后调用跳转用的函数,跳转到想要跳转的网页

标签: #超链接调用js