您的位置:首页 > Web前端 > JavaScript

href="javascript:"的使用

2016-02-19 16:34 609 查看
在开发中经常使用href="javascript:;"使得<a>标签失效不跳转,而使用绑定的方法进行跳转。

写法有好多种,如

1.<a href="javascript:;">

2.<a href="javascript:void(0);">

3.<a href="javascript:void();">

4.<a href="javascript:function();">(可以成功,但不建议使用)

在这需要注意的是如果写错,写成<a href="javascript:(0);">,会导致在一般的浏览器上正常,

而IE上的效果如下图,页面url不变,但页面内容显示为0。



原因:
javascript:是伪协议,作用是使得链接可以调用函数,伪协议是Javascript:而不是Javascripts:后面没有S。

void是一个操作符,void(0)表示不作任何操作,用来阻碍事件的默认操作。

onclick="return false;"这是给元素内嵌onclick事件处理函数,阻止默认事件的发生,防止冒泡,使用内嵌事件处理函数同样也是很不好的习惯,

因为因为你的网站的访问者完全有可能使用的是不支持JavaScript的浏览器,有一些可能是浏览器不支持你使用的Javascri脚本,或者是你的脚本有错误。在这种情况下,就要保证,你的网站即使在所有的JavaScript都失效时,仍然能够正常访问。而使用了内嵌处理函数,你的网站就不能再访问。

什么是伪协议?

伪协议就是“Javascript:”。在讲javascript:前首先看下面的例子,例子懂了就差不多知道javascript是什么,怎样使用了。

<br />
<a href="javascript:var now=new Date();'<h1>现在时间是:</h1>'+now;">JavaScript:伪协议使用1</a>
<br />
<a href="javascript:alert('伪协议使用2');">JavaScript:伪协议使用2</a>
<br />
<a href="javascript:window.open('about:blank');void 0;">JavaScript:伪协议使用3</a>


单击“JavaScript:伪协议使用1”效果如下,伪协议后的是任意的JavaScript代码,如果有多个语句,只输出最后一条。



单击“JavaScript:伪协议使用2”效果如下,可以只包含执行动作



单击“JavaScript:伪协议使用3”效果如下,打开一个新的页面。



本文部分内容来自:
http://q.cnblogs.com/q/56676/ http://www.jb51.net/article/52358.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: