为什么a标签的href里写的是js代码,而不是直接写链接地址

看一段经典的代码:javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.getElementsByTagName(“img”); DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position=‘absolute’; DIS.left=(Math.sin(Rx1+ix2+x3)x4+x5)+“px”; DIS.top=(Math.cos(Ry1+i*y2+y3)y4+y5)+“px”}R++}setInterval(‘A()’,5); void(0);
打开微软必应搜索, 把上边的代码输入到地址栏,看看运行效果。好了,热身完毕,来说正事,不说那些概念性的东西想过a元素的href属性的值可以是什么?不仅仅是我们最常见的https??/.
, 还有比较常见的如:ftp://…
tencent://…
thunder://…
mailto:…
javascript:…
概括的说,href的含义是表明a引用了一些资源,这些资源都属于某种协议,每种协议有自己的默认行为href 的值为javascript: 与 click 事件二者并不是等价的,区别主要有三:定义的scope不同,前者是global,后者可以是任何作用域执行的context不同,前者是window,后者是a元素本身执行的时机不同,总是click事件先执行,href="javascript:…"后执行,所以,只能在click事件里阻止默认行为的发生,却不能在href里阻止事件的执行。当今的前端开发中,不在href写业务逻辑,已是普遍达成的共识,所以,题主大可以用自己的方式去做,不要让别人的错误影响了自己的判断。但这不代表不能使用href=“javascript:…”,有时候使用它倒是挺方便的,
比如:
href=“javascript:;”
href=“javascript:this.close()”
href=“javascript:location.reload();”

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值