阻止a标签跳转的各种解决方案

本文详细解析了在不同情况下点击HTML a标签时的行为差异,包括触发资源加载、返回页面顶部及重新加载当前页面等场景,深入探讨了href属性值与事件处理器对链接行为的影响。

1、在以下情况,点击 a 标签不会发生跳转:即不会触发加载资源,也不返回到页面顶部:

1)a 标签的 href 标签属性的属性值为以 # 开头 且 # 后有它非空格字符 的 字符串,如: <a href="##"></a> 、 <a href="#任何字符串"></a>;

2)a 标签的 href 标签属性的属性值为以 javascript: 开头 且 javascript: 后面的代码没有返回任何东西 或者 返回为 undefined 、 null 、 void 或者 void表达式,如:<a href="javascript:"></a> 、 <a href="javascript:undefined"></a>、 <a href="javascript:null"></a>、<a href="javascript:void"></a>、<a href="javascript:undefined"></a>、<a href="javascript:void()"></a>;`
3)在a 标签的 与点击相关的事件的处理器中调用是事件对象 event 的 preventDefault() 方法来阻止 a 标签的默认操作----跳转;

2、在以下情况,点击 a 标签会触发加载 a 的标签属性 href 所指定的资源:

a 标签的标签属性href的值是相对地址或者绝对地址;

3、在以下情况,点击 a 标签会触发重新加载当前的页面:

1)a 标签没有 href 标签属性,如: <a></a>;
2)a标签有 href 标签属性,但 href 标签属性没有值,如: <a href></a>;
3)a 标签的 href 标签属性的属性值为空字符 “” 或 只有空格的字符串 " ",如: <a href=""></a> 、 <a href=" "></a>;
4)a 标签的 href 标签属性的属性值为以 ? 开头的字符串,如: <a href="?"></a> 、 <a href="?任意字符串"></a>;

4、在以下情况,点击 a 标签不会触发加载资源,但回返回到页面顶部:

a 标签的 href 标签属性的属性值为以 # 开头 且 # 后没有其它非空格字符 的 字符串,如: <a href="#"></a> 、 <a href="# "></a>;

转自:https://www.jianshu.com/p/5576a1c4c55d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值