现在的位置: 首页 > 综合 > 正文

WinForm应用程序与JavaScript脚本交互取值

2012年06月07日 ⁄ 综合 ⁄ 共 1643字 ⁄ 字号 评论关闭

 BingWay原创作品,转载请注明作者和出处。

    最近做了一个小东西,用于WinForm应用程序获取网站的用户登录信息(包括用户名、密码、角色),是一款Web网站辅助管理的小应用程序。

 

 1 <script type="text/javascript">
 2  function GetData()//用此方法,会弹出“缺少对象”错误
 3  {
 4     
 5     var username = document.getElementById("txtuname").value ;
 6     var password = document.getElementById("txtpwd").value ;
 7     var ddlrole = document.getElementById("ddlRole");//得到DropdownListid
 8     var role = ddlrole.options[ddlrole.selectedIndex].text ;//得到选中文本值
 9     return [username,password,role];
10  }
11  </script>

    本想用上面的脚本,此脚本在浏览器中运行一切正常,能得到值,但是跑到WinForm应用程序中,一直报“缺少对象”错误。调试再三未果的情况下,得出一个经典的结论,那就是传说中的人品问题。后来,查出原因,发现是“document.getElementById("txtuname").value”跑到应用程序中就报“缺少对象错误。

//登录页面
Parameters.username = txtuname.Text;//点击登陆时,赋值
Parameters.pwd = txtpwd.Text;
Parameters.role = ddlRole.SelectedValue;

 

 //后台代码

public string username = Parameters.username;//静态全局变量传值
public string password = Parameters.pwd;
public string role = Parameters.role;

 

//调用后台数据  
<script type="text/javascript">
  
         
function GetData()
         {   
              
var username ="<%= username %>";
              
var password = "<%= password %>" ;
              
var role ="<%=role%>" ;
              
return [username,password,role];
         }
 
</script>

 

  应用程序中,对脚本的调用:

        object[] Data = webBrowser1.Document.InvokeScript("GetData");//获取脚本数据
        foreachstring info in Data ){
              info=info+","//循环取值
        }
        
string[] arr=info.Split(char.Parse(",")); 
        Parameters.username = arr[0].ToString(); //得到登录输入用户名
        Parameters.pwd = arr[1].ToString(); //得到登录输入密码
        Parameters.role = arr[2].ToString(); //得到登录选择角色

  以上是我的方法,如果大家有更好的方法,还请不吝赐教!

 

 

抱歉!评论已关闭.