网站代码:
<div ID="verification_control_0" > <div > What are the first 3 letters of our website's name?:<br /> <input type="text" name="register_vv[q][71]" size="30" value="" tabindex="6" /> </div> </div>
如果你能告诉我如何更改< input type =“text”中的值name =“register_vv [q] [71]”size =“30”value =“”tabindex =“6”class =“input_text” />我非常感激.
感谢阅读和所有回复.
procedure TForm1.button1Click(Sender: TObject);var col: IHTMLElementCollection; el: IHTMLinputElement;begin col := (Webbrowser1.document as IHTMLdocument3).getElementsByname('register_vv[q][71]'); if col.length <> 0 then begin el := col.item(0,0) as IHTMLinputElement; el.value := 'mytext'; end;end;
在ie8标准模式下,getElementById
仅对ID属性执行区分大小写的匹配.
在ie7标准模式和以前的模式中,此方法对ID和name属性执行不区分大小写的匹配,这可能会产生unexpected results.
因此,如果您的TWebbrowser使用ie7标准模式和以前的模式getElementByID也应该工作:
procedure TForm1.button2Click(Sender: TObject);var el: IHTMLElement; inputElement: IHTMLinputElement;begin el := (Webbrowser1.document as IHTMLdocument3).getElementByID('register_vv[q][71]'); if Assigned(el) then if Supports(el,IID_IHTMLinputElement,inputElement) then inputElement.value := 'mytext';end;
使用getElementsByname集合按name定位元素应该是首选解决方案.
编辑:
@SertacAkyuz第一条评论:
Webbrowser1.oleObject.document.getElementByID('register_vv[q][71]').Value:='test';
我非常确定OP没有测试你的代码(默认情况下应该可以工作,除非OP明确改变IE浏览模式),而是使用了getElementByID(‘verification_control_0’) – 这是一个div元素,并且没有支持方法值. (因此自动化对象不支持错误消息“方法’值”).
总结以上是内存溢出为你收集整理的Delphi Twebbrowser更改文本框的值.全部内容,希望文章能够帮你解决Delphi Twebbrowser更改文本框的值.所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)