Javascript 从网站调用事件-使用VBA调用Internet Explorer
我正在Microsoft Access中使用VBA实现Internet Explorer自动化。我已经打开了我想要的网站,但是有一个输入,当在里面键入文本并按enter键时,网站会尝试验证数据并根据此输入填充其他字段 查看控件时,我发现以下代码:Javascript 从网站调用事件-使用VBA调用Internet Explorer,javascript,vba,ms-access,internet-explorer,ie-automation,Javascript,Vba,Ms Access,Internet Explorer,Ie Automation,我正在Microsoft Access中使用VBA实现Internet Explorer自动化。我已经打开了我想要的网站,但是有一个输入,当在里面键入文本并按enter键时,网站会尝试验证数据并根据此输入填充其他字段 查看控件时,我发现以下代码: <input name="ctl00$ContentPlaceHolder1$txtId" type="text" maxlength="8" onchange="javascript:setTimeout('__doPostBack
<input name="ctl00$ContentPlaceHolder1$txtId" type="text" maxlength="8" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$txtId\',\'\')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;
javascript:return ValidateNumber(event);
" id="ctl00_ContentPlaceHolder1_txtId" class="TextBox" onfocus="javascript:sObjetoOnFocusCSS(this);
" onblur="javascript:sObjetoOnBlurCSS(this,'TextBox');"
style="font-weight:normal;">
我认为,ValidateNumber(event)
负责验证此输入中插入的数据,以填充此网站中的其他字段
我试着做一些类似于调用document.all(ctl00$ContentPlaceHolder1$txtId)的事情代码>但它不起作用
运行验证
ctl00$ContentPlaceHolder1$txtId
控件内数据的ValidateNumber(event)
函数时,我可以做什么或修复什么?由于存在与元素相关联的onChange
事件,因此调度事件应该执行它。在填充输入字段后尝试一下
Dim ie as InternetExplorerMedium
Dim ieEvent
Dim htmldoc as HTMLDocument
Set ie = 'however you're setting IE'
Set htmldoc = ie.document
Set ieEvent = htmldoc.createEvent("HTMLEvents")
ieEvent.initEvent "change", False, True
ie.document.all.Item("ctl00_ContentPlaceHolder1_txtId").dispatchEvent ieEvent
您提到的脚本与onkeypress事件关联,因此您可以尝试:
htmldoc.querySelector("input[name='ctl00$ContentPlaceHolder1$txtId']").FireEvent "onkeypress"
是否有可共享的URL?删除
调用
关键字。@MathieuGuindon我删除了,但它不起作用至少你没有使用90年代早期的VB语法;-)