首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不触发的mshtml火灾

不触发的mshtml火灾
EN

Stack Overflow用户
提问于 2015-06-04 10:23:46
回答 2查看 1.5K关注 0票数 2

我无法在mshtml中触发"onchange“事件。你能告诉我我在这里做错了什么吗?

代码语言:javascript
复制
HTMLSelectElement element = (HTMLSelectElement)this.HTMLDocument.all.item(controlId, 0);
IHTMLElement e = element as IHTMLElement;
IHTMLDocument4 doc = e.document as IHTMLDocument4;
object dummy = null;
object eventObj = doc.CreateEventObject(ref dummy);
HTMLSelectElementClass se = element as HTMLSelectElementClass;
se.FireEvent("onchange", ref eventObj);

我得到变量"se“为null。我从另一个链接http://www.itwriting.com/phorum/read.php?3,1507获得了这段代码

有人能帮我吗。

谢谢你,山姆

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-19 14:59:56

我试过了盛提到的所有这些,但都没有成功。

通过为"onchange“注入javascript代码并执行该问题,解决了这个问题。啊,真灵。

票数 1
EN

Stack Overflow用户

发布于 2015-06-06 19:54:00

由COM调用(如HTMLDocument.all.item )生成的运行时可调用包装对象可以将接口转换为QueryInterface调用。但是RCW不知道如何转换为像HTMLSelectElementClass这样的托管类,因此它返回null。

与其将其转换为HTMLSelectElementClass,不如将其转换为IHTMLElement3以调用fireEvent。

顺便说一句,您的代码在IE11模式下不工作,因为不推荐document.all。改用IHTMLDocument3 3::getElementById。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30641304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档