龙空技术网

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

抄写并背诵全文 73

前言:

此刻你们对“超链接不跳转了怎么办”可能比较看重,看官们都想要分析一些“超链接不跳转了怎么办”的相关知识。那么小编也在网上收集了一些对于“超链接不跳转了怎么办””的相关资讯,希望你们能喜欢,兄弟们快快来了解一下吧!

分享一个拦截超链接跳转默认行为的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了)后调用跳转用的函数,跳转到想要跳转的网页

标签: #超链接不跳转了怎么办