`
sibyl_pisces
  • 浏览: 146068 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

ie6 javascript:void(0);

阅读更多

http://yslove.net/2011/02/ie6-javascriptvoid0/‘
遇到过几次这种问题,现在总结一下。
代码:
<a onclick="window.location.href='http://www.google.com'" href="javascript:void(0);">google</a>
<a href="javascript:alert('Hello!');">Say Hello</a>
<a href="javascript:void(name = 'will'); alert('Hello ' + name);">Say Hello</a>
<a onclick="window.location.href='http://www.google.com' return false;" href="javascript:void(0);">
google</a>
这段代码在主流的浏览器里面都没问题,但是在IE6下就会出现不能跳转的现象。
经过一翻排查,发现绑定的事件都会执行,是由于DOM本身的冒泡事件所以会最后执行href属性内的javascript:void
(0);导致 的。
a标签
a标签本来就是用来进行页面跳转的标签,其运行机制是告诉浏览器URL地址并且跳转。当然,我们可以在href属中直
接执行javascript。
代码:
Say Hello
这里由于javascript执行了alert函数,但是其返回的是null。所以a标签没有执行任何动作。
javascript:void(0);
void(arg);可以理解为永远返回null的函数,但是其参数不能为空。其参数可以为任意的表达式甚至是函数。
代码:
Say Hello
对IE6运行的猜想
IE6会先运行DOM本身绑定的事件,如onclick;如果没有阻止冒泡,则会顺序执行href属性。而void(0);正是不需要
执行任何事 件,则IE6告诉浏览器不执行任何事件(覆盖之前的动作),并且终止冒泡相当于return false;于是
浏览器没有执行任何动作。
这样只要在onclick事件内阻止冒泡事件即可。
经过改进的代码为:
<a onclick="javascript:window.location.href='http://www.google.com'; return false;" 
href="javascript:void(0);">google</a>
这样在IE6下就可以正常运行了。
其他方法
当然可以不使用javascript:void(0);而改使用#也可以避免,href属性内的#本来的意思就是锚点#name所以当不指定任何锚 时自然会到页面顶端并在URL后加入Hash symbol。
这里对于锚还有一个比较特殊的用法
当href属性的值是锚点时,但是又找不到该锚点,则相当于返回null,所以可以使用##来代替javascript:void(0);
当然前提是你的页面不要有锚点的名字是#的哟~

 

分享到:
评论
3 楼 yuxiatongzhi 2011-12-09  
绑定事件里   return  false;   如果设置  <a href="#" />会引起页面跳动,因为# 在html里为锚点,在页面最上方。
2 楼 sibyl_pisces 2011-11-07  
jinliqunkok 写道
对IE6 改进的代码是什么。用void(0)的时候

<a onclick="javascript:window.location.href='http://www.google.com'; return false;" href="javascript:void(0);">google</a>
1 楼 jinliqunkok 2011-11-07  
对IE6 改进的代码是什么。用void(0)的时候

相关推荐

    IE6下javasc#ipt:void(0) 无效的解决方法

    综上所述,对于IE6中`javascript:void(0)`无效的问题,最可靠的解决方案是使用`return false;`。尽管现代浏览器已经不再有这些问题,但考虑到仍然有一些老旧系统可能还在使用IE6,理解并解决这些兼容性问题仍然是...

    jquery 仿QQ相册

    &lt;li&gt;&lt;a title="" href="javascript:void(0);"&gt;&lt;img alt="" src="pics/1.jpg"&gt;&lt;/a&gt; &lt;li&gt;&lt;a title="" href="javascript:void(0);"&gt;&lt;img alt="" src="pics/2.jpg"&gt;&lt;/a&gt; &lt;li&gt;&lt;a title="" href=...

    javascriptvoid(0)含义以及与”#”的区别讲解

    链接(href)直接使用javascript:void(0)在IE中可能会引起一些问题,比如:造成gif动画停止播放等,所以,最安全的办法还是使用“####”。为防止点击链接后跳转到页首,onclick事件return false即可。 3.如果仅仅...

    设为主页跳转代码大全

    "&gt;`,这样可以在大多数浏览器中正常工作,包括IE6/7等较老版本的浏览器。 3. **需要阻止链接默认行为时**:可以考虑使用`&lt;a href="javascript:void(0);" onclick="javascript:goUrl('http://www.sina.com'); return ...

    网页设计常用的Javascript特效代码

    &lt;a href="javascript:void(null)"&gt;防止离开 ``` 通过使用`void(null)`表达式,可以确保点击链接不会有任何实际动作发生,从而避免用户误操作导致页面关闭。 #### 8. 自动换行和表格布局 为了确保表格内容在不同屏幕...

    [removed]void(0)的问题使用探讨

    `javascript:void(0)` 是JavaScript中的一个操作符,它的作用是执行后面的表达式,但不返回任何值,也不会改变浏览器的状态。在`&lt;a&gt;`标签的`href`属性中使用`javascript:void(0)`,可以确保点击链接时浏览器不会尝试...

    [removed];与[removed]void(0)使用介绍

    ` 和 `javascript:void(0)` 在IE浏览器中可能会引起一些问题,例如可能导致GIF动画停止播放。因此,推荐使用多个 `#` 来避免潜在的问题,同时在 `onclick` 事件中使用 `return false;` 来确保不执行任何默认行为,且...

    [removed]void(0)使用探讨

    这种方法相对安全,不会像"javascript:void(0)"那样在某些浏览器(如IE)中导致问题,例如停止动画播放等。 3. 使用href="javascript:void(0)"结合onclick事件:当需要链接在被点击时执行一些自定义的JavaScript...

    浏览器兼容(支持IE和firefox)

    在IE6中,如果`a`标签的`href`属性设置为`javascript:void(0)`或`javascript:`,`location.href`将无法正常跳转。这是因为`javascript:void(0)`阻止了页面的默认行为,导致页面无法通过`href`进行跳转。解决这个问题...

    [removed]void(0)是什么意思及href=#与href=javascriptvoid(0)的区别

    然而,`href="javascript:void(0)"` 在某些旧版本的IE浏览器中可能引发问题,如导致GIF动画停止播放。为了避免这些问题,一个更推荐的做法是使用 `href="#"` 并在链接的 `onclick` 事件中添加 `return false`,这...

    DIV+css兼容性FFIE6IE7IE8IE9[借鉴].pdf

    本文档“DIV+css兼容性FFIE6IE7IE8IE9[借鉴].pdf”主要关注如何处理Firefox和不同版本的Internet Explorer(IE6、IE7、IE8、IE9)之间的CSS差异。以下是一些关键知识点的详细说明: 1. **CSS Hack**: - CSS Hack...

    html中a标签调用js函数.docx

    更推荐的做法是`&lt;a href="javascript:void(0);" onclick="js_method()"&gt;`。`void(0)`操作符返回`undefined`,阻止页面跳转,而`onclick`事件负责执行JavaScript函数。这种方法不会像第一种那样在状态栏显示...

    调用js时ie6和ie7,ff的区别

    IE6可能无法正确处理`onclick`事件,尤其是在与`javascript:void(0)`一起使用时,可能会导致AJAX请求失败。这可能是由于IE6的事件处理机制与其他浏览器不同,或者是对`javascript:void(0)`这种写法的解析有误。 ...

    IE地址栏中的妙用大全

    - 在地址栏输入以下JavaScript代码:`javascript:for(jK6bvW=0;jK6bvW;jK6bvW++){void(document.images[jK6bvW].style.visibility=hidden)}`。 ##### 14. 显示页面源代码 - 在地址栏输入以下JavaScript代码:`...

    [removed].href IE下跳转失效的解决方法

    首先,问题的根源在于使用了`javascript:void(0)`作为`&lt;a&gt;`标签的`href`属性值。这样做的目的是防止页面刷新或跳转,同时执行JavaScript函数。然而,在IE6中,这可能导致点击事件的行为被阻止,导致预期的页面跳转...

    通过伪协议解决父页面与iframe页面通信的问题

    iframe.src="javascript:void((function(){var d=document;d.open();d.domain='xxx';d.write('---something');d.close()})())"; ``` 这段代码会在iframe中执行,设置`document.domain`为`'xxx'`,然后写入`'---...

Global site tag (gtag.js) - Google Analytics