我有一个通过TWebBrowser加载网页的应用程序,在这个页面上我有一些HTML输入。我想要的是改变输入的值并将插入位置设置到最后。
这就是我现在所拥有的:
procedure SetInputValue(Document : IHTMLDocument2; const ElementId, NewValue : String);
var Doc : IHTMLDocument3;
El : IHTMLElement;
begin
Doc := Document as IHTMLDocument3;
if Assigned(Doc) then
begin
El := Doc.getElementById(ElementId);
if Assigned(El) then
begin
if El.tagName = 'INPUT' then
(El as IHTMLInputElement).Value := NewValue;
(El as IHTMLInputElement).select;
end;
end;
end;
这段代码设置输入值并突出显示文本部分。 我知道IHTMLInputTextElement2 Interface但它只能从IE9获得
答案 0 :(得分:6)
您应该使用IHTMLTxtRange
var Tr: IHTMLTxtRange;
Tr := (El as IHTMLInputElement).createTextRange;
Tr.collapse(true);
Tr.moveEnd('character', Length(NewValue));
Tr.moveStart('character', Length(NewValue));
Tr.select();