对fireEvent大失所望!

1216dy 2005-12-12 10:14:22
<body>
<a id=test href="http://www.sina.com.cn">sina</a>
<button onclick="clickpro()">BUTTON</button>
</body>
<SCRIPT language=JavaScript>
function clickpro(){
test.fireEvent("onclick");
//test.click();
}
</SCRIPT>

这里按BUTTON后,什么也没有.但如果用test.click(),则会转到SINA的网页.
本来以为,如果用test.fireEvent("onmousedown")会触发onmousedown,onclick,onmouseup等一系列事件的,结果让人大失所望!看来fireEvent也没有啥大的作用!不能模拟鼠标的效果!

欢迎大家讨论.批评指正.
如果我想实现,可以触发一系列的事件onmousedown,onfocus,onclick,onmouseup,真正模拟鼠标的一次点击,该怎么实现.谢谢.
...全文
261 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
smx717616 2005-12-13
  • 打赏
  • 举报
回复
http://www.cnblogs.com/birdshome/archive/2005/04/07/128182.html
smx717616 2005-12-13
  • 打赏
  • 举报
回复
1
<body>
<a name="test" href="http://www.sina.com.cn" onclick="alert('aa');" >sina</a>
<button onclick="test.fireEvent('onclick')">BUTTONaaa</button>
<button onclick="BUTTON1.fireEvent('onclick')">BUTTON</button>
<button onclick="alert('aa');" id="BUTTON1">BUTTON1</button>
</body>
2
<body>
<a name="test" href="http://www.sina.com.cn" >sina</a>
<button onclick="test.fireEvent('onclick')">BUTTONaaa</button>
<button onclick="BUTTON1.fireEvent('onclick')">BUTTON</button>
<button onclick="alert('aa');" id="BUTTON1">BUTTON1</button>
</body>
1可以弹出提示,2不可以。
gu1dai 2005-12-13
  • 打赏
  • 举报
回复
从我的示例中我们可以看到,test.click()的确是先触发了onclick事件,然后再转到sina.com的,但是为什么fireEvent的onclick事件却不能完成地址转向的效果呢?
gu1dai 2005-12-13
  • 打赏
  • 举报
回复
onclick是事件,那click是什么?click是方法。

click Method Internet Development Index

--------------------------------------------------------------------------------

Simulates a click by causing the onclick event to fire.

问题又来了。既然click模拟的click是由onclick事件产生的,那么为什么反而onclick却在a标签中达不到click的效果?
gu1dai 2005-12-13
  • 打赏
  • 举报
回复
这个问题很有意思。
照结果来看
click()和onclick是不同的事件

<script language="javascript" type="text/javascript">
<!--
var x = "mouseinfo\n";
function add(evt){
x +=evt+"\n";
obinfo = document.getElementById('info');
obinfo.innerText = x;
}
//-->
</script>

<a name="test" href="http://www.sina.com.cn"
onmousedown="add('mouse_down')"
onmouseup="add('mouse_up')"
onkeydown="add('key_down')"
onkeyup="add('key_up')"
onclick="add('click')"
><h1>sina</h1></a><br/><br/>
<button onclick="test.fireEvent('onclick')">fireEvent_onclick</button><br/>
<button onclick="test.click()">直接点击</button><br/>

<textarea name="" id="info" rows="10" cols="80" >
</textarea>
全息宇宙 2005-12-13
  • 打赏
  • 举报
回复
笔误,呵呵,这个

<body>
<a id=test href="http://www.sina.com.cn" onclick="window.location='http://www.sina.com.cn';">sina</a>
<button onclick="clickpro()">BUTTON</button>
</body>
<SCRIPT language=JavaScript>
function clickpro(){
test.fireEvent("onclick");
//test.click();
}
</SCRIPT>

test.fireEvent("onclick");只是触发的链接标签的onclick事件,跟test.click();(触发点击链接)不一回事
全息宇宙 2005-12-13
  • 打赏
  • 举报
回复
<body>
<a id=test href="http://www.sina.com.cn" aonclick="window.location='http://www.sina.com.cn';">sina</a>
<button onclick="clickpro()">BUTTON</button>
</body>
<SCRIPT language=JavaScript>
function clickpro(){
test.fireEvent("onclick");
//test.click();
}
</SCRIPT>

test.fireEvent("onclick");只是触发的链接标签的onclick事件,跟test.click();(触发点击链接)不一回事
gu1dai 2005-12-13
  • 打赏
  • 举报
回复
在又笨的基础上修改的,可以转到新浪,发现a的name或id为test都可以执行。
name的
<a name="test" href="http://www.sina.com.cn" onclick="document.location.href=this.href">sina</a>
<button onclick="test.fireEvent('onclick')">BUTTONaaa</button>
---------
id的
<a id="test" href="http://www.sina.com.cn" onclick="document.location.href=this.href">sina</a>
<button onclick="test.fireEvent('onclick')">BUTTONaaa</button>
1216dy 2005-12-13
  • 打赏
  • 举报
回复
从大家测试结果来看,test.click()>test.fireEvent("onclick").除了fireEvent可以bubble外
smx717616 2005-12-12
  • 打赏
  • 举报
回复
<body>
<a id=test href="http://www.sina.com.cn">sina</a>
<button onclick="test.fireEvent("onclick")">BUTTON</button>
</body>
<SCRIPT language=JavaScript>
function clickpro(){
test.click();
}
</SCRIPT>

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧