【问题标题】:Why can't I trigger select change event using C# WebBrowser control?为什么我不能使用 C# WebBrowser 控件触发选择更改事件?
【发布时间】:2018-04-29 01:30:20
【问题描述】:

在 javascript 中,我看到以下定义:

 $('#dropDownId').change(function(){        
 ... do stuff...          
 });

 <select id="dropDownId">
     <option value="1">value 1</option>
     <option value="2">value 2</option>
     <option value="3">value 3</option>
 </select>

我尝试过使用以下代码:

 webBrowser.Document.GetElementById("dropDownId").SetAttribute("value", "1");
 webBrowser.Document.GetElementById("dropDownId").Children[1].SetAttribute("selected", "selected");
 webBrowser.Document.GetElementById("dropDownId").InvokeMember("onchange");

我可以看到下拉列表已更改为正确的值,但以下内容从未执行:

 $('#dropDownId').change(function(){        
 ... do stuff...          
 });

另外,当我在 Chrome 中查看“dropDownId”的属性时,“onchange”事件为空,那么如何为下拉菜单调用上述“更改”脚本?

【问题讨论】:

    标签: javascript c# html winforms


    【解决方案1】:

    jquery 附加事件以允许多个事件处理程序,这就是您的selectonchange 属性为空的原因。

    你可以这样做:

    function myChange(){        
     ... do stuff...          
    }
    
    <select id="dropDownId" onchange="myChange">
    ...
    </select>
    

    webBrowser.Document.InvokeScript("myChange");
    

    function myChange_Jquery(){
      $("#dropDownId").change();
    }
    
    webBrowser.Document.InvokeScript("myChange_Jquery");
    

    【讨论】:

    • 有没有办法调用jquery事件?
    猜你喜欢
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 2013-10-05
    相关资源
    最近更新 更多