`
sibyl_pisces
  • 浏览: 141373 次
  • 性别: 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)的时候

相关推荐

    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.如果仅仅...

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

    IE 6 下,JSP 中 链接问题: &lt;javascript&gt; function btnHome_onClick(){window.open(“com.mcl.common.main.InitHome.flow”,”mainFrame”);if(winoperate.style.display != “none”){ silde_onClick(); ...

    flash 弹出窗口js 生成器

    由于新版本IE的改变,所以要在生成的代码增加一void函数,写成 getURL("javascript:void(window.open......... ") getURL 是flash的命令,加 javascript 可以调用网页里的js函数,也可以用windows 的内置函数。open ...

    javascript中直接写php代码的方法

    一、在javascript中嵌入php代码javascript若是通过js文件包含进来的,那么js文件中也可以直接写php...但是javascript却不能这样:newGame : function(a, b = 0)ie和chrome会报错,ff会直接忽略。我们可以用arguments只

    基于 HTML5 +JavaScript 网页塔防游戏

    void(0);  2.难度增倍:[removed]_TD.cheat="difficulty+";void(0);  3.难度减半:[removed]_TD.cheat="difficulty-";void(0);  4.生命值恢复:[removed]_TD.cheat="life+";void(0);  5.生命值降为最低:...

    JavaScript Table行定位效果

    首先想到的方法是给tr设置relative,用ie6/7测试以下代码: Code &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; ...

    IE6中ajax aborted错误请求中断解决方法

    但是,在HTML代码中,已经将a标签的href设置成了”[removed]void(0)”,通常这样是可以阻止默认事件了(页面跳转)。a标签的click事件会先执行,然后才执行href的跳转,如果href是一段javascript语句,这个时候就会...

    Android WebView 应用界面开发教程

    WebView组件本身就是一个浏览器实现,Android5.0增强的WebView基于Chromium M37,直接支持WebRTC、WebAudio、WebGL。开发者可以直接在WebView中使用聚合(Polymer)和Material...void loadUrl(String url):加载指定UR

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

    原因可能是因为在href中的[removed]void(0)阻止的事件行为,解决方法如下: 1.在onclick事件中加return false来阻止冒泡: 代码如下: $(“a”).click(function(){ [removed].href = “xxx.html”;

    [removed]void(0)点击登录没反应怎么解决

    巧用批处理解决IE不支持JavaScript等问题 rem =====批处理开始======== regsvr32 actxprxy.dll regsvr32 shdocvw.dll Regsvr32 URLMON.DLL Regsvr32 actxprxy.dll Regsvr32 shdocvw.dll regsvr32 oleaut32.dll ...

    解除网页锁定

    提供一个解除网页锁定的小工具 一、很有实用价值的神奇代码 只要你在IE浏览器任意打开一个... void 0  然后回车,你就可以随心所欲的修改这个网站啦!  通过这段代码你可以对一些禁止复制内容的网页进行复制了。

    C#版ActiveX + JS +Flex通讯 完整实现

    6:在ReadICCardActiveX 控件里,添加一個GUID,可以使用 工具-创建GUID 菜单创建一个GUID 7:为了让ActiveX控件获得客户端的信任,控件类还需要实现一个名为“IObjectSafety”的接口。先创建该接口(注意,不能...

    javascript实现获取cookie过期时间的变通方法

    javascript和动态页无法获取cookie过期的时间,过期时间由浏览器管理,javascript和动态页只能设置过期时间,无法通过[removed](javascript)或者Cookie.Expires(asp.net)属性获取到。 代码如下: &lt;&#37;@page...

    大名鼎鼎SWFUpload- Flash+JS 上传

    在IE中,刷新的时候FLASH无法加载(详细可见我之前的debug过程) 在FireFox中,如果窗口的滚动条没有回滚到顶部,那么Flash无法加载 Race-conditions when files are cached 兼容ASP.Net Forms SWFUpload v2 ...

    asp+ajax静态分页

    document.getElementById('right').innerHTML='&lt;a href="javascript:void(edit())" title="修改每页显示条数"&gt;Edit&lt;/a&gt;'; } function save() { //保存修改后的显示条数 var pagesize=document.getElementById('...

    Asp+AJAX静态分页 亲测 可用

    a href="[removed]void(edit())" title="修改每页显示条数"&gt;Edit&lt;/a&gt;'; } function save() { //保存修改后的显示条数 var pagesize=document.getElementById('pagesize'); //这个就不写了,跟上面的用法...

    android webview中使用Java调用JavaScript方法并获取返回值

    在android平板上用webview打开一个网页,调用里面的javascript方法,同时相互传参。 网上例子很少啊,基本都不能获取返回值,贴一个自己最后调试完的代码如下: Java: 代码如下: protected void onCreate(Bundle ...

    详解a标签添加onclick事件的几种方式

    1. a href=”[removed]js_method();” rel=”external nofollow” 这种方法在传递this等参数的时候很容易出问题,而且...2. a href=”[removed]void(0);” rel=”external nofollow” rel=”external nofollow” onc

Global site tag (gtag.js) - Google Analytics