TWebBrowser如何在IE8上将插入位置设置为INPUT(文本)字段的结尾

who*_*ddy 4 delphi input twebbrowser

我有一个通过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;
Run Code Online (Sandbox Code Playgroud)

这段代码设置输入值并突出显示文本部分.我知道IHTMLInputTextElement2接口,但它只能从IE9获得

kob*_*bik 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();   
Run Code Online (Sandbox Code Playgroud)