在searchinput时显示Javascriptbuild议框
我迫切需要编写一个macros来帮助我从javascriptsearch框中检索“build议”的结果。 我有一个很长的名单与一些不可读的字符(我已经转换为星号),并提交这些名称,这样的引擎我经常被build议相关的“干净”的名称。
该网页有很多javascript代码,所以我的任务最终在于指导excel来控制Internet Explorer,就像我手动执行。 由于版权的原因,我不能发布这个网页的全部来源,但我已经确定了我需要控制的两个主要元素。 首先,有一个input框,我需要inputsearch关键字:
<div class="quickSearchCriteria"> <input name="SearchText" type="text" id="SearchText_08" class="quickSearchCriteriaInput" maxlength="150" value="Enter a name" onkeyup="onClickText(true);GrayOkQuick();if(event.keyCode==13) {doOkOnEnterForMozilla();return true;}" onblur="onClickText(false);GrayOkQuick();" onmouseup="onClickText(true);" style="color:gray;" />
我发现在这个框中inputsearch关键字非常简单:
Set objIE = CreateObject("InternetExplorer.Application") With objIE .navigate "%%%" .Visible = 0 Do While .Busy: DoEvents: Loop Do While .readyState <> 4: DoEvents: Loop Set htmlDoc = .Document Set htmlColl = htmlDoc.getElementsByName("SearchText") For Each htmlInput In htmlColl htmlInput.Focus htmlInput.Value = "Tryme" Next htmlInput
在手动input姓名的时候,我可以触发build议框的细化,这个框将以表格的forms出现:
<table class="sugg_m" cellspacing="0" cellpadding="0" style="visibility: visible; left: 23px; top: 92px; width: 342px;">
我也完全能够导入(并可能parsing)使用:
Set htmlsugg = htmltabs.getElementsByClassName("sugg_m") stringresults = Trim(htmlsugg.item(, 1).outerText)
我所缺less的是这两者之间的联系。 我无法从input框中触发onkeyup事件。 这是我已经尝试过,这是不成功的:
-
改变焦点(来回)
-
使用FireEvent方法:
htmlInput.FireEvent "onkeyup"
-
使用
dispatchEvent
而不是FireEvent
Set evt = htmlDoc.createEvent("HTMLEvents")
evt.initEvent "blur", False, False
htmlInput.dispatchEvent evt
-
执行所有看似相关的脚本:
htmlDoc.parentWindow.execScript "ActiveNGram()", "JavaScript"
htmlDoc.parentWindow.execScript "onClickText(true)", "JavaScript"
htmlDoc.parentWindow.execScript "SearchTextCreateSugg()", "JavaScript"
htmlDoc.parentWindow.execScript "ShowTable()", "JavaScript"
-
在4中的语句之前使用
Call
也不起作用
请注意,如果不成功,我的意思是macros运行平稳,但目标variablesstringresults
返回为空(如果我手动inputsearch关键字,然后我用macros提取表)。
重新创build表的实际function位于一个JavaScript模块(我可以访问和手动查看,但我无法自动这样做:
<script type="text/javascript" src="/version-201452/Common/Javascript/Search/sugg.js"></script>
此外,我不认为有必要访问该模块:我不需要创build表,我只需要使其显示。
任何帮助将不胜感激,因为现在我已经失去了很多,如果需要,我可以提供更多的信息和代码。
谢谢!