如何使用xmlhttp检索onClick / onChange数据

时间:2012-01-11 06:17:52

标签: javascript asp.net client-side onchange xmlhttprequest

我对这一切都比较新,而回答这个问题的搜索一直在杀我。请注意,我可能会问错误的问题,甚至可能是错误的术语,但是它的价值是什么:

作为网站用户,我正在尝试使用VBA中的xmlhttp对象“浏览”内部aspx网站。虽然我能够通过使用明显的URL行访问某些网站页面上的elementID,但是某些ElementID是动态生成的,因此在用户从菜单中进行选择之前不可用。信息是由某种onChange / onClick / javascript / postback函数加载的。有没有办法检索这个动态信息?此外,这是否是正确的方法?

注意:我可以使用IE对象完成所有这些操作,但出于性能原因,我真的试图避免使用它。

在检查文件时,网页侧面代码显示:

<select name="ctl00$plcContent$Item1$Tabs$tabServices$Services$ddServiceCats" onchange="javascript:setTimeout('__doPostBack(\'ctl00$plcContent$Item1$Tabs$tabServices$Services$ddServiceCats\',\'\')', 0)" id="ctl00_plcContent_Item1_Tabs_tabServices_Services_ddServiceCats">
<option selected="selected" value="00000000-0000-0000-0000-000000000000">Select Service Category</option>
<option value="3f44517e-135a-466a-8440-9b1250d5285b">Kites</option>
<option value="7ec669b7-4d2c-4216-b19e-491faa13995a">Bikes</option>
<option value="f0bb692f-3df7-4c04-80d4-7e2b4a2805c3">Tikes</option>
.
.
.

我用来访问网页的VBA如下:

With xml
    .Open "GET", BASE_URL3, False
    .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    .Send ([no idea what to write here for the purposes of this question])
End With

目标是在我们弄清楚如何“选择”主要类别(子类别的elementID值是动态的)之后,识别“Bikes”子类别的elementID(例如,像“轮胎”)。

如果我需要发布更多代码,请告诉我。

再次感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为问题的根源在于难以将客户端发生的事情与JavaScript分开,而不是在服务器端执行的事情(我假设是VBA)。

当你在谈论“网站”时我也会混淆你的比喻,当我认为你的意思是页面时,以及对页面上的URL和HTML元素感到困惑。

说实话,我并不完全理解你所描述的内容以及你想要做的事情。

直接回答您的问题:是的,您可以检索通过xmlhttp请求从服务器发送的动态信息。希望您使用框架在客户端执行该请求,并且xmlhttp请求中的回调方法将包含来自服务器的数据有效负载(响应)。不看正在执行的代码,很难给你详细的指导。

如果由于某种原因您无法访问AJAX请求的回调方法,您还可以内省结果页面的DOM结构,但您又需要知道您要查找的内容(即哪些元素已更新)结果)。

发布一些男女同校,也许我们可以帮助你。