【问题标题】:TWebBrowser how set caret position to end of INPUT(text) field on IE8TWebBrowser 如何在 IE8 上将插入符号位置设置为 INPUT(文本)字段的末尾
【发布时间】:2012-01-26 15:40:52
【问题描述】:

我有一个通过 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 获得

【问题讨论】:

    标签: delphi input twebbrowser


    【解决方案1】:

    你应该使用IHTMLTxtRange

    var Tr: IHTMLTxtRange;
    
    Tr := (El as IHTMLInputElement).createTextRange;
    Tr.collapse(true);
    Tr.moveEnd('character', Length(NewValue));
    Tr.moveStart('character', Length(NewValue));
    Tr.select();   
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      • 1970-01-01
      相关资源
      最近更新 更多