2013-03-12 33 views
2

如何使用Tchromium Delphi更改組合框的值? 版本Tchromimum DCEF3如何改變Delphi Tchromium中組合框的值?

<td class="droplabels" nowrap="nowrap">Лист</td> 
<td colspan="3"> 
    <div class="ui-widget"> 
     <select id="sheet" name="sheet" style="font-size:0.7em;width:761px;" 
     class="form_select" onchange="showSheet(this.value);"> 
      <option value="1" selected="selected">Account List </option> 
      <option value="2">Merchant list</option> 
     </select> 
    </div> 
</td> 

試試這個但不工作的... Chromium1.Browser.MainFrame.ExecuteJavaScript('document.getElementById("sheet").selectedIndex=2;', 'about: blank', 0); Chromium1.Browser.MainFrame.ExecuteJavaScript('document.getElementById("providerField").onchange();', 'about: blank', 0);

+0

您正在使用哪個版本的Chromium? – TLama 2013-03-12 12:23:33

+0

來自svn/truck的最新版本 – Ulugbek 2013-03-13 04:16:16

+0

如果是['CEF1'](https://code.google.com/p/delphichromiumembedded/)或['CEF3'](https://code.google.com/p/dcef3 /)Delphi的包裝器。你可以[編輯你的問題](http://stackoverflow.com/posts/15354828/edit),並將這些信息包含在你的問題中? – TLama 2013-03-13 07:26:08

回答

0

有一個ExecuteJavascript就可以了。所以你可以用Javascript來處理它的一切。
如果要更改該組合框值,請使用DOM對其進行更改。使用「document.getElementById」獲取其ID,然後通過訪問其selectedIndex來更改其selectedIndex。
但是,這不會觸發onChange事件。 所以,你需要再次使用javascript手動調用它。

下面就來改變它的代碼的selectedIndex:

Chromium1.Browser.MainFrame.ExecuteJavaScript('document.getElementById("sheet").selectedIndex='+comboboxIndex+';', 'about: blank', 0);

手動觸發onChange事件:

Chromium1.Browser.MainFrame.ExecuteJavaScript('document.getElementById("providerField").onchange();', 'about: blank', 0);

更改Chromium1您TChromium變量對象的名字。

下面是關於選擇
http://www.w3schools.com/jsref/dom_obj_select.asp

更多信息,如果您不知道DOM什麼,這兒讀
http://www.w3schools.com/htmldom/default.asp 在簡單的方法,你只需要得到它的DOM對象,然後通過訪問和修改其屬性來做你想要的東西

對不起,我的英語不好。
編輯

+0

你的問題根本不清楚。你需要清楚你的問題,你要找的東西應該更詳細些。 – 2013-03-14 06:21:09

+0

我認爲他只是想改變鉻瀏覽器上顯示的組合框值。我錯了嗎? – Raizal 2013-03-14 06:28:53

+0

你沒有錯,但你必須清楚地陳述你的假設並給出答案。如果你可以編輯答案,並將其詳細,這將是偉大的 – 2013-03-14 06:40:28

相關問題