最近想用C#模拟操作网页,网页中有一个元素<a herf=javascript;>,请问我在点击这个按钮时,它执行javascript脚本中的function(e),那么它在给function传递参数e时,请问e的内容是什么。
还有C# webbrowser 用InvokeMember("click")模拟点击该元素为什么没有反应呢,执行过后没有返回值,网页内容也没有变化。脚本jQueryJavaScriptC#Webbrowser

解决方案 »

  1.   

    eventObject
      

  2.   

    1.事件函数执行时,探查器会在调用事件函数时相关参数,客户端事件主要是事件触发对象,事件触发时鼠标位置,事件类型之类,具体可百度
    2.服务端无法直接操作客户端,服务器要直接对客户端产生影响,只能是提交表单后,服务端发送新的页面代码时。其他时候服务端发送的数据都需要客户端js获取并操作dom。所以服务端是不能触发客户端html的事件的。具体可百度web运行过程
    另行建议尽早抛弃.net的服务器控件
      

  3.   

    查看asp.net最终render到浏览器的html   <!--
    var theForm = document.forms['form1'];
    if (!theForm) {
        theForm = document.form1;
    }
    function __doPostBack(eventTarget, eventArgument) {
        if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
            theForm.__EVENTTARGET.value = eventTarget;
            theForm.__EVENTARGUMENT.value = eventArgument;
            theForm.submit();
        }
    }
    // -->
    <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />                
    <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTA0NDQ2OTE5OWRk281L4eAk7iZT10hzg+BeOyoUWBQ=" /><input type="button" name="Button2" value="Button2" onclick="javascript:__doPostBack('Button2','')" id="Button2" />
    这里可以模拟它的js请求。