首页 新闻 会员 周边

mshtml 触发事件

0
悬赏园豆:15 [已关闭问题] 关闭于 2010-08-24 09:48

下面这段代码输出的结果是123,为什么不是abc呢?click事件难道没起作用?

如果先用WebBrowser加载此页面,然后doc2从WebBrowser.document转换而来的话,结果是正确的abc。

mshtml.IHTMLDocument2 doc2 = new mshtml.HTMLDocumentClass();
doc2.write(
"<html><body><div id='dv' onclick='this.innerHTML=\"abc\"'>123</div></body></html>");
doc2.close();
mshtml.IHTMLElement div
= doc2.all.item("dv", 0) as mshtml.IHTMLElement;
div.click();
Response.Write(div.innerHTML);

 

 

luotong的主页 luotong | 初学一级 | 园豆:4
提问于:2010-08-14 10:46
< >
分享
所有回答(1)
0

服务器代码怎么会执行客户端事件,更何况事件代码还是JS内容。

Astar | 园豆:40805 (高人七级) | 2010-08-14 10:50
如果在第二行代码的</html>后面加上 <script>document.getElementById('dv').innerHTML = '789'</script> 这段脚本是会运行的,输出的是789。可为什么单击的脚本却不会执行呢?
支持(0) 反对(0) luotong | 园豆:4 (初学一级) | 2010-08-14 10:59
@luotong:加上你上面的JS是页面在客户端加载的时候会执行相应的操作。而div.click();这句代码是在服务器端执行的,如果你想这样,可以把DIV变成一个服务器端控件,并添加单击事件,并在服务器端写相应的事件代码,这时会生效。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-08-14 11:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册