在代码中,我们经常会看到像<a href="javascript:void(0)" ></a>这种代码。
javascript是一种伪协议,表示url中的内容通过javascript执行。
void(0)表示不做任何操作,防止链接跳转到其他页面。
如果你鼠标悬停于一个链接上,在浏览器底部状态栏上显示该链接的目标地址是这个的话,说明这个网页的编写者希望这个链接被点击时不是直接跳转到某个新页面,而是执行
其他操作(例如某个预设的JS函数)。
那为什么要加这个呢?
因为链接的HTML代码(<a href="地址">链接</a>)中“href”参数只要不为空,点击该链接时,页面会自动跳转,如果指定的“href”不合法,页面会跳转到自身,也就是刷新,那如
果想用该链接来干点别的什么事呢?那我们就要为“href”指定一个合法但又不会刷新页面的参数,所以“javascript:void(0)”就派上用场啦,我们可以这样改
(<ahref="javascript:void(0)" οnclick="干点别的事">链接</a>),这样点击这个链接会触发onclick事件,而页面本身不会刷新,任务达成。
javascript:void(0)和javascript:;(冒号,双引号)都是空,其实都是有执行空事件,QQ空间用的是javascript:;,新浪微博用的是javascript:void(0)
听说javascript:void(0);据说某些情况下有浏览器兼容bug。(此bug不知道什么时候能出现)。
代码示例:
下面的代码创建了一个超级链接,当用户以后不会发生任何事。当用户链接时,void(0) 计算为 0,但 Javascript 上没有任何效果。
// 实际上单击此处什么也不会发生,要执行某些处理,但是不整体刷新页面的情况下,可以使用void(0),但是在需要对页面进行refresh刷新的时候,就要用void
操作符指定超链接,表达式会被计算但是不会在当前文档处装入任何内容。页面的代码创建了一个超级链接,当用户点击以后不会发生任何事情,当用户点击链接
时,void(0)计算为0,但在Javascript上没有任何效果。
下面的代码创建了一个超级链接,用户单时会提交表单。
<a href="javascript:void(document.form.submit())">单此处提交表单</a>