2013-03-12 65 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

相关问题