none
帮忙看看这个大致是什么意思 RRS feed

  • 问题

  • 这个是从别人一个网站的源码(不是真正源码,只是菜单栏里查看——源文件)的一部分:
    <!--
     function __doPostBack(eventTarget, eventArgument) {
      var theform;
      if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
       theform = document.forms["Form1"];
      }
      else {
       theform = document.Form1;
      }
      theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
      theform.__EVENTARGUMENT.value = eventArgument;
      theform.submit();
     }
    // -->






    ---------------------------

    <a href="javascript:__doPostBack('DataGrid1$_ctl14$_ctl2','')" style="color:#4A3C8C;">3</a>


    这里我想知道当我单击这个“3”之后,具体提交了什么参数?

    另外我自己做了一个工具,是从该网站可以查询一些信息,目前登陆已经做好了,现在在想怎么查询里面数据,我想通过提交带有参数的URL直接获得我所需要的页面,比如有一段代码是这样的:
    <select name="zc" onchange="__doPostBack('zc','')" language="javascript" id="zc" style="font-size:X-Small;height:24px;width:104px;">
     <option selected="selected" value="0">请选择周次</option>
     <option value="1">1</option>
     <option value="2">2</option>
     <option value="3">3</option>
     <option value="4">4</option>
     <option value="5">5</option>
     <option value="6">6</option>
     <option value="7">7</option>
     <option value="8">8</option>
     <option value="9">9</option>
     <option value="10">10</option>
     <option value="11">11</option>
     <option value="12">12</option>
     <option value="13">13</option>
     <option value="14">14</option>
     <option value="15">15</option>
     <option value="16">16</option>
     <option value="17">17</option>
     <option value="18">18</option>
     <option value="19">19</option>
     <option value="20">20</option>
     <option value="21">21</option>
     <option value="22">22</option>
     <option value="23">23</option>
     <option value="24">24</option>

    </select></TD>


    我尝试提交类似这样的地址:http://www.xxxxx.com/xxxx.aspx?zc=1
    并不能得到查询后的页面结果,显示出来的结果与http://www.xxxxx.com/xxxx.aspx一摸一样

    希望高手能帮一下,还是我这个想法直接通过URL提交带有参数的地址获得数据页面不可行?

    • 已移动 Sheng Jiang 蒋晟 2009年9月27日 16:55 客户端脚本问题 (发件人:Visual C#)
    2009年9月26日 4:26

答案

  • 不知道我有没有看错,因为zc的数据是通过下拉列表框post回服务器端的,而楼主的想依靠url传递参数的方式,除非原来的网站也那么支持才行,否则你虽然从url上传递的参数,但是在服务器端并不会得到处理。除非楼主从你的程序中利用post方式发送数据给服务器。这种程序通常模拟手工操作就行了,就是你手工怎么操作页面的,就用代码模拟手工对各个控件的操作。具体的需要分析各个页面生成的HTML代码,并对相关HTML元素调用适当的方法来实现。

    理解的越多,需要记忆的就越少
    2009年9月27日 13:48

全部回复

  • 1.这个是asp.NET 的post的内容,或者ajax的

    如果估计没错 应该是这个页面的DataGrid1的单元格内容吧

    这个最好还是能看到背后的源代码,否则很难猜测到干了什么。

    2.现在很多网站都使用类似友好的url,或者叫 url重定向,如果知道规则你也可以模拟这类url地址实现你内容提交。


    family as water
    2009年9月26日 8:05
  • 1.这个是asp.NET 的post的内容,或者ajax的

    如果估计没错 应该是这个页面的DataGrid1的单元格内容吧

    这个最好还是能看到背后的源代码,否则很难猜测到干了什么。

    2.现在很多网站都使用类似友好的url,或者叫 url重定向,如果知道规则你也可以模拟这类url地址实现你内容提交。


    family as water
    嗯,是的,是post的,后面也确实有个DataGrid,不过真正的源码别人肯定不让我看的。

    网站是用vs .net 7.1的c#写的
    如果直接从源文件里面去历遍所有的表单,那么当一页内容很多的时候会很耗费资源,而且速度也比较慢,程序写起来也有点难度。
    所以才想通过URL直接打开我所需要的页面,只是现在以我的水平还看不出来具体是怎么提交的。
    我现在只是完成了在软件界面实现登陆,用的是历遍所有的表单,因为登陆界面很简单,所以历遍所有的速度很快,可以当有实际内容的时候,这样一步步历遍,工作效率就很低了
    2009年9月26日 9:02
  • 建议你采用Ajax来做。像那种DataGrid控件是很费资源的。
    你可以看看ExtJS,这里面的控件不错。


    做最好的自己
    2009年9月26日 14:10
  • 建议你采用Ajax来做。像那种DataGrid控件是很费资源的。
    你可以看看ExtJS,这里面的控件不错。


    做最好的自己

    额,你理解错了,这个网站并不是我写的,是别人写的,我只是自己要写一个软件,想通过软件界面来实现对网页的操作,现在就是不知道应该提交怎样的URL,如果每次都依靠软件去查找网页源码来实现,这个工作效率也是很低的
    2009年9月26日 23:52
  • 不知道我有没有看错,因为zc的数据是通过下拉列表框post回服务器端的,而楼主的想依靠url传递参数的方式,除非原来的网站也那么支持才行,否则你虽然从url上传递的参数,但是在服务器端并不会得到处理。除非楼主从你的程序中利用post方式发送数据给服务器。这种程序通常模拟手工操作就行了,就是你手工怎么操作页面的,就用代码模拟手工对各个控件的操作。具体的需要分析各个页面生成的HTML代码,并对相关HTML元素调用适当的方法来实现。

    理解的越多,需要记忆的就越少
    2009年9月27日 13:48