Html A标签中 href 和 onclick用法、区别、优先级别

原文:Html A标签中 href 和 onclick用法、区别、优先级别

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

 代码如下 复制代码
<a href="javascirpt:fn(this)"> <a onclick="fn(this)">

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

所以,比较推荐的写法是

 代码如下 复制代码
<a href="http://zxffl.blog.163.com/blog/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="http://www.111cn.net/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="http://zxffl.blog.163.com/blog/#"> 会导致页面定位到书签位置,

5

由于 1和 4 的原因

在ie6 下 同时有 <a href="http://zxffl.blog.163.com/blog/#" 和 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="http://www.111cn.net/" 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来实现的。

时间: 2025-01-04 04:37:06

Html A标签中 href 和 onclick用法、区别、优先级别的相关文章

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

我们在制作网页的时候用得最多的就是 A 标签 超连接 但有时候需要在 A 里同时用到 href 和 onclick属性 下面我们先来分析一下 ,在不同的浏览器下有不同的效果 1 顺序 ie 6 : href 先触发 onclick 后触发 其他浏览器 先触发onlick 后触发 href 2 href="javascript: xxx()" 不能传入this作为参数 onclick可以 <a href="javascript:alert('href event');&q

a标签的href与onclick中使用js的区别 《转》

href与onclick中javascript的区别一般没用到都没注意,但出错时才有些郁闷,看文本章解释如下: 以前一直很随意,后来看.net里的linkbutton似乎是用在<a href="javascript:fun();"...>的形式,今天用这种方式就遇到一些问题,摘网友的文章和我的结论放在下面: 链接的 onclick 事件被先执行,其次是 href 属性下的动作(页面跳转,或 javascript 伪链接): 假设链接中同时存在 href 与 onclick,

a标签的href和onclick

1.链接的onclick事件被先执行,href的事件后执行 2.就今天遇到的问题说一下,通过a标签的onclick事件实现点击后定位到指定的div,或者是执行其他函数(比如弹出artdialog等),页面如果有滚动条,那么页面的滚动条都会首先置顶,这样会引起不必要的页面跳动. 所以,推荐的使用方法是<a href="javascript:void(0);" onclick="myFun();">测试</a>或者<a href="

a标签中href=&quot;#xxx&quot;跳到id=&quot;xxx&quot;

HTML中a标签中href="#xxx",当点击后,页面会跳转到标签中id="xxx"的地方. 同时,在URL上的后面会看到加上了#xxx,这样直接改变URL中#后面的值,然后页面就可以跳转到标签中id为这个值的地方. 测试代码: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>

超链接a标签的href与onclick中使用javascript的区别

onclick中javascript的区别一般没用到都没注意,但出错时才有些郁闷,看文本章解释如下: 以前一直很随意,后来看.net里的linkbutton似乎是用在<a href="javascript:fun();"...>的形式,今天用这种方式就遇到一些问题,摘网友的文章和我的结论放在下面: 1.链接的 onclick 事件被先执行,其次是 href 属性下的动作(页面跳转,或 javascript 伪链接): 2.假设链接中同时存在 href 与 onclick,如

&lt;a&gt;标签的href和onclick属性【转】

1链接的onclick 事件被先执行,其次是href属性下的动作(页面跳转,或 javascript 伪链接): 2假设链接中同时存在href 与onclick,如果想让href 属性下的动作不执行,onclick 必须得到一个false的返回值: 3如果页面过长有滚动条,且希望通过链接的 onclick 事件执行操作.应将它的 href 属性设为 javascript:void(0);,而不要是 #,这可以防止不必要的页面跳动: 4如果在链接的 href属性中调用一个有返回值的函数,当前页面的

a标签的href与onclick

首先,先总结下<a> 标签的 href 属性的值: 1.用于指定超链接目标的 URL. 比如href="index.html",即点击a标签跳转到index页面. 也可以是php文件的URL,比如<a href="user.php">,user.php可以是服务器文件,也可以是包含包含: 2.<a href="#">跳转到页面顶部,不刷新页面.当合onclick配合使用时,用法如下: <a href=&q

&lt;a&gt;标签的href 与 onclick 使用

链接的onclick 事件被先执行,其次是href属性下的动作(页面跳转,或 javascript 伪链接): 假设链接中同时存在href 与onclick,如果想让href 属性下的动作不执行,onclick 必须得到一个false的返回值: 如果页面过长有滚动条,且希望通过链接的 onclick 事件执行操作.应将它的 href 属性设为 javascript:void(0);,而不要是 #,这可以防止不必要的页面跳动: 如果在链接的 href属性中调用一个有返回值的函数,当前页面的内容将被

[转]html里a标签中href调用js的几种方法

文章转自:https://blog.csdn.net/best_luxi/article/details/45062301 我们常用的在a标签中有点击事件: 1. a href=”javascript:js_method();” 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议作为a的href属性的时候不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放.W3C标准不推荐在href