A标签阻止跳转

今天碰到项目问题:
跳转下载
后台给的接口去做导出Excel,现在要加个新的功能就是先判断一下。购物车里面是否有下架的商品。
这里用了A标签,需要阻止跳转进行验证,
总结以下a标签阻止默认行为的几种简单方法,希望可以对有需要的朋友有些帮助,
(1) <a href="javascript:void(0);" onclick= "myjs( )"> Click Me </a>
<a href="javascript:void(null)"></a>
onclick方法负责执行js函数,而void是一个操作符,void(0)返回undefined,地址不发生跳转。
<a href="javascript:;" > Click Me </a>
和void(0)一样,都返回"undefined"
(2) <a href="#"> Click Me </a>
#是标签是锚点,用这种方法点击后网页后会返回到页面的最顶端
但是网页后面又有了“##”“#!”等,尽管解决了返回顶部的问题但仍存在其他缺陷
(3)事件处理函数的工作机制中,在给某元素添加事件处理函数后,一旦事件发生,相应JavaScript代码就会执行,所调用的JavaScript代码的返回值被传递给事件处理函数。当我们给a标签添加onclick事件处理函数并点击a触发其后,
如果相应JavaScript代码返回true,onclick事件处理函数就会认为这个链接呗点击了,同样的若返回false即会认为链接未被点击
<a href="http://www.baidu.com" onclick=" myjs(); return false; "> Click Me </a> <a href="http://www.baidu.com" onclick=" return false; "> Click Me </a>
当点击a标签时,JavaScript代码返回值为false,故此链接默认行为未被触发。
(4)preventDefault()阻止事件的默认行为但不支持IE,所以在IE中使用returnValue阻止事件默认行为

<a href="http://www.baidu.com" id="test">  Click Me  </a> 
<script type="text/javascript"> 
var test = document.getElementById('test'); 
function stopDefault( e )
{ 
   if ( e && e.preventDefault ) 
      e.preventDefault(); 
     else 
        window.event.returnValue = false;  
} 
test.onclick = function(e) 
{ 
     stopDefault(e); 
} 
</script>

之后可以使用 window.location.href 进行跳转;
还有什么更优化跳转方法呢,以上方法还有何利弊。

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值