var
comment =
document.getElementsByTagName
(
'a'
)
[
0]
;
if
(
document.all
)
{
// For IE
comment.click
(
)
;
}
else
if
(
document.createEvent
)
{
//FOR DOM2
var
ev =
document.createEvent
(
'MouseEvents'
)
;
ev.initEvent
(
'click'
,
false
,
true
)
;
comment.dispatchEvent
(
ev)
;
}
上面的代码在IE6, IE7 和 FireFox 3 下通过测试。
1 顺序
ie 6 : href 先触发 onclick 后触发
其他浏览器 先触发onlick 后触发 href
2 href="javascript: xxx()"
不能传入this作为参数
onclick可以
<a href="javascript:alert('href event');" οnclick="clickevent(this);">
3 优先触发的方法如果返回 false 导致后一个事件不被触发
比如
<a href="javascript:alert('href event');" οnclick="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);" οnclick="doSomthing(this)" >
//用jquery
$('#sdfgsd').click();