在网页上我有一个空的选择框:
<select id="select" >
</select>
从我的Delphi(7 enterprise / XP - sp(3))我想将N OPTION(s)和VALUE(s)放入该选择中。
从服务器获取N,可以是1到150之间的任何数字:
类似的东西:
只有在运行时我才能知道N的精确值(可能会从运行变为运行 - 这里n = 5):
DELPHI:
For N := 0 to 5 DO
PutIntoSelect('option' + inttostr(n), 'value' + inttostr(n));
所以结果将是:
HTML:
<select id="select" >
<option = '0'>value0</option>
<option = '1'>value1</option>
<option = '2'>value2</option>
<option = '3'>value3</option>
<option = '4'>value4</option>
<option = '5'>value5</option>
</select>
我该怎么做?
我研究过IHTMLSELECTelement但我找不到有用的东西。
答案 0 :(得分:1)
非常简单。您只需获得一个选项元素工厂并调用create来实例化一个新选项。然后,您可以通过select元素的add方法添加返回的选项。
此代码显示了如何,但不安全!您应该将其分解成碎片,并且每当您要求参考时,检查是否已分配询问的那个,因此将以下作为原则示例:
procedure TForm1.Button1Click(Sender: TObject);
var
Option: IHTMLOptionElement;
Select: IHTMLSelectElement;
Factory: IHTMLOptionElementFactory;
begin
Select := (WebBrowser1.Document as IHTMLDocument3).getElementById('select') as IHTMLSelectElement;
Factory := (WebBrowser1.Document as IHTMLDocument2).parentWindow.Option;
Option := Factory.create('Option 1', 'Value 1', False, True);
Select.add(IHTMLElement(Option), Unassigned);
Option := Factory.create('Option 2', 'Value 2', False, False);
Select.add(IHTMLElement(Option), Unassigned);
end;
您可以使用的HTML:
<!DOCTYPE html>
<html>
<body>
<select id="select"/>
</body>
</html>