日期:2014-05-18  浏览次数:20459 次

如何在程序中模拟页面的javascript:function()交互?内详!
这么说吧:

比如有一个论坛的帖子列表,翻到第二页时触发的是

javascript:__doPostBack( 'MyDataGrid$_ctl29$_ctl1 ', ' ')

这样一个函数(这个是.NET自动生成的,还有其它页面内的js函数等),在浏览器中输入以上一串就能翻到第二页。

我想在我的程序中直接获取第二页、第三页等的内容(HTML内容),类似通常用WebClient获取   abc.aspx?page=2   这样的返回结果。也就是用程序进行javascript:__function()这样的交互,能实现吗?

第一次提问,请高手指教,感谢!

------解决方案--------------------
你看看__doPostBack是怎么实现的就明白了,它是把参数赋给了几个hidden表单控件,然后把表单提交的。

所以你并不需要模拟javascript,可以直接以Post方式向它提交表单数据。

一般提交的也就是__EventTarget=MyDataGrid$_ctl29$_ctl1&__EventArgument=这样的数据,另外可能还要把__ViewStatus也要提交过去。

要提交哪些只要分析页面内表单控件就行了。
------解决方案--------------------
最终同服务器交换的是一个HTTP数据包..

你只需要完全按照这个HTTP数据包.组织数据.再POST到服务器上,就OK了...