ie6 javascript:void(0);
代码:
<a onclick="window.location.href='http://www.google.com'" href="javascript:void(0);">google</a>
这段代码在主流的浏览器里面都没问题,但是在IE6下就会出现不能跳转的现象。
经过一翻排查,发现绑定的事件都会执行,是由于DOM本身的冒泡事件所以会最后执行href属性内的javascript:void(0);导致的。
a标签
a标签本来就是用来进行页面跳转的标签,其运行机制是告诉浏览器URL地址并且跳转。当然,我们可以在href属中直接执行javascript。
代码:
<a href="javascript:alert('Hello!');">Say Hello</a>
Say Hello
这里由于javascript执行了alert函数,但是其返回的是null。所以a标签没有执行任何动作。
javascript:void(0);
void(arg);可以理解为永远返回null的函数,但是其参数不能为空。其参数可以为任意的表达式甚至是函数。
代码:
<a href="javascript:void(name = 'will'); alert('Hello ' + name);">Say Hello</a>
Say Hello
对IE6运行的猜想
IE6会先运行DOM本身绑定的事件,如onclick;如果没有阻止冒泡,则会顺序执行href属性。而void(0);正是不需要执行任何事件,则IE6告诉浏览器不执行任何事件(覆盖之前的动作),并且终止冒泡相当于return false;于是浏览器没有执行任何动作。
这样只要在onclick事件内阻止冒泡事件即可。
经过改进的代码为:
<a onclick="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);
当然前提是你的页面不要有锚点的名字是#的哟~
ie6 javascript:void(0);的更多相关文章
- IE6与 javascript:void(0)
遇到过几次这种问题,现在总结一下. 代码: <a onclick="window.location.href='http://www.google.com'" href=&q ...
- IE6下javascript:void(0)不可用的解决
<a href="javascript:void(0)" class="inp_sear_a" onclick="doSubmit();&quo ...
- a href=#与 a href=javascript:void(0) 的区别
a href="#"> 点击链接后,页面会向上滚到页首,# 默认锚点为 #TOP <a href="javascript:void(0)" onCl ...
- href使用 javascript:;与javascript:void(0)防跳到顶部
有时候我们在编写js过程中,需要触发事件而不需要返回值,那么就可能需要这样的写法 href=”#”,包含了一个位置信息.默认的锚是#top,也就是网页的上端,当连续快速点击此链接时会导致浏览器巨慢 ...
- a标签的href="javascript:void(0)"和href="#"的区别
修正一个说法上的bug吧.对于IE6来说,点击后gif暂停bug仅仅发生在“javascript:伪协议未加分号”的情形下. 我再来提供一个视角吧. 给<a>标签增加href属性,就意味着 ...
- a href=#与 a href=javascript:void(0) 的差别
a href="#"> 点击链接后,页面会向上滚到页首,# 默认锚点为 #TOP <a href="javascript:void(0)" onCl ...
- a标签中的href="#"与href="javascript:void(0)"区别
转自http://blog.csdn.net/fightplane/article/details/5190037 <a href="#"> 点击链接后,页面会向上滚到 ...
- a href=#与 a href=javascript:void(0) 的区别(转)
a href="#"> 点击链接后,页面会向上滚到页首,# 默认锚点为 #TOP <a href="javascript:void(0)" onCl ...
- 【repost】javascript:;与javascript:void(0)使用介绍
有时候我们在编写js过程中,需要触发事件而不需要返回值,那么就可能需要这样的写法 最近看了好几个关于<a>标签和javascript:void(0)的帖子,谨记于此,以资查阅. 注:以下代 ...
随机推荐
- 两个不同网段的PC直连是否可以Ping通,肯定可以Ping的通(转)
在这一篇文章中http://blog.csdn.net/zhangdaisylove/article/details/46892917的案例,明确的说明两个不同网段的PC不能Ping的通,其实他给出的 ...
- Delphi 的插件框架 WisdomPluginFramework
WisdomPluginFramework是融合OSGI微内核理念 + Eclipse的扩展点概念而精心设计的轻量级插件框架, 由Delphi实现,但可以使用于Delphi.BCB.VC++中,提供非 ...
- x-requested-with 请求头 区分ajax请求还是普通请求
在服务器端判断request来自Ajax请求(异步)还是传统请求(同步): 两种请求在请求的Header不同,Ajax 异步请求比传统的同步请求多了一个头参数 1.传统同步请求参数 accept t ...
- The differentiation program with abstract data
#!r6rs ( import ( rnrs base ( 6 ) ) ( rnrs io simple ( 6 ) ) ) ( define ( deriv exp var ) ...
- matlab mex中C++内存全局共享和持久化
为提高matlab程序运行速度,经常将核心程序编写为mex动态链接库: 然而,经常情况下,在mex函数中分配的内存或句柄希望在mex函数调用完成后在后续函数调用中能够共享而不被释放,本程序方法为解决该 ...
- 获得sql server的table的表结构 -- 转到word中
SQL语句: select syscolumns.name,systypes.name,syscolumns.length from syscolumns join sysobjects on sy ...
- sublime在高分辨率屏幕下,左侧边栏字体问题
因为新的笔记本是1920*1080分辨率的屏幕,在打开sublime的时候,侧边栏的文件夹名字会变得很小,虽然很清晰,但是太小了看起来很吃力, 如下图所示 网上找了很多的方法试了好久没有成功,一天闲下 ...
- .net开发Ae释放com对象的问题
本文转载自: http://www.cnblogs.com/yhlx125/archive/2011/11/22/2258543.html#2269154我的博文 http://www.cnblogs ...
- Android Binder总结
1. MediapplayerService 的启动,怎样在ServiceManager注冊的,不解说详细的细节 ServiceManager 是整个系统的Service总管,其余的系统服务都是通过d ...
- 第十四章 openwrt 安装 python
需要安装libffi,python-mini,python.libffi以及python-mini需要安装在python之前 如果部分软件包不一样可以在下面的web后台搜索,搜索前先opkg ...