详解Html a标签中href和onclick用法、区别、优先级别


Posted in Javascript onJanuary 16, 2017

如果不设置 href属性在IE6下面会不响应hover。双击后会选中标签的父容器而非这个一a标签(IE下都存在这一问题)。

代码如下 

<a href="javascirpt:fn(this)"> <a onclick="fn(this)">

假定我们有个fn方法,需要取到这个元素,第一个方法传入的this是空值。

所以,比较推荐的写法是

代码如下

<a href="javascript:void(0)" onclick="fn(this)">

下面代码则执行了subgo()函数,

代码如下

<a href="javascript:void(0)" onclick="subgo()">点我</a>

在这里,javascript:void(0),没启实质上的作用,它仅仅是一个死链接,执行的函数是subgo()。

代码如下

<a href="http://blog.163.com/wb_zhaoyuwei/blog/#" onclick="subgo()">点我</a>与<a href="javascript:void(0)" onclick="subgo()">点我</a>区别。

实际上 #包含了一个位置信息默认的锚是#top 也就是网页的上端 ,而javascript:void(0) 仅仅表示一个死链接,没有任何信息。所以调用脚本的时候最好用void(0)

href一般是指向一个URL地址,也可以调用javascript ,如href="javascript:xxx();",文档中推荐这样写:

代码如下

<a href="https://3water.com/zhongxing/U880/ javascript:void(0)" onclick="xxx();">xx</a>

但是这种方法在复杂环境有时会产生奇怪的问题,尽量不要用javascript:协议做为A的href属性,这样不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放。

我们知道链接的 onclick 事件被先执行,其次是 href 属性下的动作(页面跳转,或 javascript 伪链接),如果不想执行href 属性下的动作执行,onclick 需要要返回 false ,一般是这样写onclick="xxx();return false;".

TabPane的JS源码,由于onclick没有返回FALSE,当IFRMAE中关闭TABPANE时会导致href执行,页面显示有问题。解决办法就是将下面代码复制到使用TAB的JSP中。

Html A标签中 href 和 onclick 同时使用的问题 优先级别

1 顺序

ie 6 : href 先触发 onclick 后触发

其他浏览器 先触发onlick 后触发 href

2 href="javascript: xxx()"

不能传入this作为参数

onclick可以

代码如下

<a href="javascript:alert('href event');" onclick="clickevent(this);">

3 优先触发的方法如果返回 false 导致后一个事件不被触发

比如

代码如下

<a href="javascript:alert('href event');" onclick="clickevent(this); return false;">

4

<a href="#"> 会导致页面定位到书签位置,

5

由于 1和 4 的原因

在ie6 下 同时有 <a href="#" 和 onclick的时候 由于页面先因为href重新载入了一次,导致 onclick事件被浏览器丢弃。

6 总结:

1) 在不需要传递this作为方法的参数时候,推荐

只使用href="JavaScript: "

2) 如果需要使用this参数,推荐

代码如下

<a href="javascript:void(0);" onclick="doSomthing(this)" > 

如下面一个列子。

我们需要A在第一次和第二次点击的时候 访问 href 第3次以后的就访问另一个地址

代码如下

var href=0
function clicka(obj)
{
 if (href==2)
 {
 obj.href="http://www.baidu.com?qc";
 }else
 {
 href++;
 }
 return true;
}
 <a href="https://3water.com/" target=_blank id="showa" onclick="clicka(this)"> 开屏高速下载 </a>

在a标签的href与onclick中使用javascript的区别

链接的 onclick 事件被先执行,其次是 href 属性下的动作(页面跳转,或 javascript 伪链接);

假设链接中同时存在 href 与 onclick,如果想让 href 属性下的动作不执行,onclick 必须得到一个 false 的返回值。不信,你可以将 goGoogle 函数中的 return false 注释掉;

如果页面过长有滚动条,且希望通过链接的 onclick 事件执行操作。应将它的 href 属性设为 javascript:void(0);,而不要是 #,这可以防止不必要的页面跳动;

如果在链接的 href 属性中调用一个有返回值的函数,当前页面的内容将被此函数的返回值代替;

在按住Shift键的情况下会有所区别。

今天我遇到的问题,在IE6.0里以href的形式访问不到parentNode。

尽量不要用javascript:协议做为A的href属性,这样不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放。

就这些,花了不少时间在这上面。

[缘由]

用CheckBoxList控件时想实现在每个checkbox后再加链接的功能,点链接实现一些功能之外,还要把checkbox选中。

代码如下

<input type="checkbox" name="chk" id="chk">
<label for="chk">选中它<a onclick="this.parentNode.click();" href="http://luwenxiang1990.blog.163.com/blog/#" style="border:solid 1px blue;">[label中的链接]</a></label>

最后用parentNode来实现的。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
javascript 数组排序函数sort和reverse使用介绍
Nov 21 Javascript
JavaScript程序员应该知道的45个实用技巧
Mar 04 Javascript
js如何实现点击标签文字,文字在文本框出现
Aug 05 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
Oct 12 Javascript
解析ajaxFileUpload 异步上传文件简单使用
Dec 30 Javascript
canvas绘制表盘时钟
Jan 23 Javascript
vue.js的安装方法
May 12 Javascript
vue组件发布到npm简单步骤
Nov 30 Javascript
node.js中路由,中间件,ge请求和post请求的参数详解
Dec 26 Javascript
vue-scroller记录滚动位置的示例代码
Jan 17 Javascript
Vue CLI3 如何支持less的方法示例
Aug 29 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
Jul 19 Javascript
jQuery插件扩展操作入门示例
Jan 16 #Javascript
jQuery插件版本冲突的处理方法分析
Jan 16 #Javascript
js实现带缓动动画的导航栏效果
Jan 16 #Javascript
jQuery居中元素scrollleft计算方法示例
Jan 16 #Javascript
jQuery使用正则表达式替换dom元素标签用法示例
Jan 16 #Javascript
JavaScript日期选择功能示例
Jan 16 #Javascript
jquery——九宫格大转盘抽奖实例
Jan 16 #Javascript
You might like
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
PHP学习笔记之php文件操作
2016/06/03 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
JS采用绝对定位实现回到顶部效果完整实例
2016/06/20 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
jQuery日期范围选择器附源码下载
2017/05/23 jQuery
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
2018/08/27 Javascript
Django模板继承 extend标签实例代码详解
2019/05/16 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
使用typescript改造koa开发框架的实现
2020/02/04 Javascript
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
[03:59]DOTA2英雄梦之声_第07期_水晶室女
2014/06/23 DOTA
python机器学习实战之树回归详解
2017/12/20 Python
Python高斯消除矩阵
2019/01/02 Python
python 实现识别图片上的数字
2019/07/30 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
python-地图可视化组件folium的操作
2020/12/14 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
什么是Smart Navigation?
2016/07/03 面试题
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
六年级数学教学反思
2016/02/16 职场文书
Go gorilla/sessions库安装使用
2022/08/14 Golang