标签响应javascript的href处理[转载]
为了给一个<a />标签绑定javascript,但又不让它跳转链接,大家习惯上用的都是
<a href="javascript:;" onclick="test();">第一种</a>
<a href="javascript:void(0);" onclick="test();">第二种</a>
<a href="#" onclick="test();">第三种</a>
而结果呢,几乎每一种用法都会有所问题
第一种和第二种似乎没有区别,似乎也是最常用,但IE6下,点击的瞬间,会中止后续资源的载入,如果页面上存在着gif动画,那么,在点击这个链接的一瞬间,页面上的gif将会被中止。这会是很杯具的体验。
第三种虽然在IE6下面,gif动画不会被中止,但在各个浏览器下,点击了链接之后,都会被跳回页首。其实它就是一个空锚点,被跳到页首。这对于有滚动条的页面,似乎也是一个杯具的体验。
于是当时经过试验,使用了第四种方法:
<a href="###" onclick="test();">第四种</a>
这个方法圆满解决了以上的问题。
第四种方法我用了许久,一直都被我作为最圆满的解决方法,但最近做的评论系统被嵌进带有FLASH视频的文章时,我又发现杯具了。
可以参考一下178的视频,例如以下
http://donghua.178.com/donghua_play/16582.html
乍一看似乎一切很正常,但右侧的动画集数,点完之后,URL后都会带一个#play的锚点
于是页面的URL将会变成
http://donghua.178.com/donghua_play/16582.html#play
这时,将鼠标点进中间的视频,也就是flash部分,就会发现,页面的标题栏文字丢失了,变成了#play,如果用的是第四种方法的###,那么标题栏也会变成#
虽然说不影响大局,但也是一种不良的体验。
山穷水尽之时,得到了大牛的指点……最后解决了,方法如下:
<a href="javascript:void(0);" onclick="test(); return false;">最终方法</a>
onclick的最后加上了return false;之后,IE6也听话了。
参考大牛的BLOG:http://www.yclass.com/post/23.html
不过,至于页面真的需要锚点的话,可以考虑使用javascript来实现锚点的功能。
标签响应javascript的href处理[转载]的更多相关文章
- A标签使用javascript:伪协议
一.前言 今天,遇到一个别人挖的坑,问题是这样的. 做了一个列表页,可以筛选数据,有很多筛条件.主要是有input复选框和<a>标签两种.如图: 其中房价的筛选条件使用<a>标 ...
- JavaScript test//href
目录 JavaScript test//href JavaScript test//href href 其实这个问题并不属于这里的.但是呢,由于一天晚上因为这个问题扰我"一夜不能眠" ...
- 如何用iframe标签以及Javascript制作时钟?
如何利用iframe标签以及Javascript制作时钟? 如何制作一个时钟呢?效果如下图所示: 这里的时钟会不停的走,但是下面的页面是不会变得,这样就实现了我们想要的效果了.下面我将分为以下几个方面 ...
- a标签响应onclick事件,并且不执行href动作
1.javascript:void(0)相当于一个死链接,href不执行 <a href="javascript:void(0)" onclick="doSomet ...
- a标签的 onclick 和 href 哪个先执行?
以下这种写法,onclick 事件先执行, href 属性下的动作后执行(页面跳转或 javascript 伪链接),如果不想执行 href 属性下的动作,onclick 需要返回 false. &l ...
- javascript中href和replace比较
在使用javascript的时候,有时候对于经常使用的方法太熟悉而忽略了他们之间原理的细微差别.举例如下:window.location.href,window.location.replace. ...
- JavaScript可否多线程? 深入理解JavaScript定时机制(转载)
说明:最近写 js 时需要用setinterval函数做定时操作,谁知道,刚开始后运行完好,但一段时间后他就抽风了,定时任务运行的时间间隔越来越短,频率加快,这是一个完全不能容忍的问题,带着一个可以出 ...
- JavaScript控制href属性进行钓鱼
前一阵子,发现JavaScript中允许临时改变<a>标签的href属性,当改变其属性后你点击它可能看不出有多严重,但是,它可以通过欺骗手段来诱骗用户透露他们的详细资料. // Uncom ...
- a标签中javascript和void
<body> <a href="javascript:;">点了无反应</a> <a href="javascript:void ...
随机推荐
- CentOS系统时间同步(NTP)
CentOS系统时间同步的步骤如下: 新装的CentOS系统服务器可能设置了错误的,需要调整时区并调整时间. 如下是CentOS系统使用NTP来从一个时间服务器同步把当前时区调整为上海就是+8区,想改 ...
- 环境变量之执行文件路径的变量PATH
当我们执行一个命令时,系统会依据PATH的设置去PATH定义的每个目录下查寻该命令的可执行文件,如果在PATH定义的目录中含有多个文件名为我们要执行的命令的可执行文件时,那么先查询到的同名命令先被执行 ...
- 【转】IT新人如何快速成长
主动积极 主动积极包括很多方面了,主动学习.主动思考.主动承担责任等等.我觉得主动性很重要,如果你能做到这一点,那么肯定会把工作做的很好的. 学会学习 公司不是学校,需要改变由老师灌输知识的学习方式. ...
- Unity3D 多平台_预编译相关宏定义
http://www.cnblogs.com/zhaoqingqing/p/3510332.html API地址:http://docs.unity3d.com/Documentation/Manua ...
- Tags Used In OpenERP 7.0
In OpenERP 7.0. the form view of each object has been redesigned so that the object the user is work ...
- lamp 一键安装
下载安装(ssh登录服务器,执行如下操作即可,需要用到root用户权限来安装) 源码编译安装 wget http://dl.wdlinux.cn:5180/lanmp_laster.tar.gz ta ...
- [转载]最完整PHP.INI中文版
[转载]最完整PHP.INI中文版 http://www.21andy.com/blog/20090718/1344.html 最完整PHP.INI中文版 适用于 php-5.2 的 php.ini ...
- Android EditText 赋值与取值
//取值 String strSmsPhone=m_txtSmsPhone.getText().toString(); //赋值 m_txtSmsPhone.setText("你好" ...
- 输出流格式化(以操纵子方式格式化,以ios类成员函数方式格式化)
一.以操纵子方式格式化 数据输入输出的格式控制使用系统头文件<iomanip>中提供的操纵符.把它们作为插入操作符<<的输出对象即可.如setiosflags.setw.set ...
- 转 springboot 监控点 简介
Spring Boot Actuator监控端点小结 2016-12-24 翟永超 Spring Boot 被围观 7973 次另一篇简单介绍: HTTP://BLOG.720UI.COM/20 ...