日期:2014-05-16  浏览次数:20653 次

超链接中的 javascript:void(0);

写在前面: 因为有了 IE6 所以有了下面的文字. 如果你对 IE6 不 Care , 你可以开始浏览其它文章去了. 下文中部分内容参考自这里
如果我们想要在超链接中执行一段 javascript 程序, 我们通常会在脑子中闪现出下面的代码

<a href="javascript:void(0);" onclick="myFunction();">链接</a>

?上面的代码在绝大多数浏览器上都可以正常发挥它的作用. 可是在 IE6 上在某些特定的情况下会出现一些奇怪的问题.

1, 在 IE6 下当 myFunction() 的作用是用来做页面刷新操作时, 它会没有效果.  

2    (页面刷新操作是指类似如 window.location="***" , 提交表单 等等操作.)  

3 2, 在 IE6 下当页面上包含有动态 gif 图片时, 上面的代码会导致动态图片停止播放. 

?如果你有在超链接中执行 js 并且要执行的 js 中有涉及到页面跳转或者是页面上有动态图片时, 要尽量避免使用上面的代码形式, 可以用下面的几种方法来解决这个问题:

<script type="text/javascript">  
 function goUrl(x){  
     window.location = x;  
 }  
</script>  

 <a href="javascript:;" onclick="javascript:goUrl('http://www.baidu.com');">跳转1</a>  
 <a href="javascript:void(0);" onclick="javascript:goUrl('http://www.baidu.com');">跳转2</a>  
 <a href="javascript:void(0);" onclick="javascript:goUrl('http://www.baidu.com'); return false;">
跳转3</a>  
 <a href="#" onclick="javascript:goUrl('http://www.baidu.com');">跳转4</a>  
<a href="###" onclick="javascript:goUrl('http://www.baidu.com');">跳转5</a> 
?

跳转1和2在IE6环境下无效
跳转3, 跳转4, 跳转5 在常用浏览器上都能通过.
跳转4 与 跳转5 的区别在于, 使用 # 号时点击链接会跳到整个页面的最顶端. 而使用 ### 时则可以避免这个问题的发生.