簡體   English   中英

為什么我不能使用C#WebBrowser控件觸發選擇更改事件?

[英]Why can't I trigger select change event using C# WebBrowser control?

在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”事件為null,那么如何為下拉菜單調用上述“ change”腳本?

jquery附加事件以允許多個事件處理程序,這就是為什么select onchange屬性為null的原因。

你可以做:

function myChange(){        
 ... do stuff...          
}

<select id="dropDownId" onchange="myChange">
...
</select>

要么

webBrowser.Document.InvokeScript("myChange");

要么

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

webBrowser.Document.InvokeScript("myChange_Jquery");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM