You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何无法用C# WebBrowser控件触发Select的Change事件?

解决WebBrowser控件触发jQuery绑定的Select Change事件问题

你遇到的问题根源在于:jQuery绑定的change事件并没有直接挂载到元素的onChange原生属性上,而是通过jQuery自身的事件管理系统维护的,所以直接调用InvokeMember("onChange")无法触发绑定的回调。

下面是两种可行的解决方法:

方法一:直接用jQuery的trigger方法触发事件

利用WebBrowser的InvokeScript执行jQuery代码,直接调用trigger触发目标元素的change事件,这是最直接的方式:

// 确保页面已加载完成且jQuery可用
br.Document.InvokeScript("eval", new object[] { "$('#letter').trigger('change');" });

方法二:分发原生Change事件

jQuery会监听元素的原生事件,所以可以通过JS创建并分发一个原生的change事件,同样能触发jQuery绑定的回调:

HtmlElement selectletter = br.Document.GetElementById("letter");
br.Document.InvokeScript("eval", new object[] { 
    "var changeEvent = new Event('change'); " +
    "document.getElementById('letter').dispatchEvent(changeEvent);"
});

注意事项

  • 必须确保WebBrowser控件的页面已经完全加载(可在DocumentCompleted事件中执行上述代码),且页面中的jQuery库已成功加载,否则会出现找不到$或元素的错误。

内容的提问来源于stack exchange,提问作者Jatin D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 10:42:52