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();