JS多参数的传递和调用


JS多参数的传递和调用


最近在写一个ActiveX控件的时候,需要将ASP网页中的多个参数传递到JS函数中,再通过JS函数调用ActiveX控制(OCX)进行显示。有几种方法可以实现,主要用到ASB和JS很简单。
方法一:通过ASP动态刷新网页调用
这种方式要刷新当前页面,如果当前页demo.asp还有其它一些东些不便于刷新,那么可以把ASP获取外部参数的代码以及ActiveX的部分放在test.asp中用框架的方式引用过来,刷新时只会刷新框架
<iframe id="demo" name="demo" src="test.asp" frameborder="0" scrolling="no" width="520" height="400"></iframe>
而demo.asp页中除了放上面的框架的代码,还放链接传递参数给框架里的test.asp,每个参数用"&"分开
<a href="test.asp?loginip=aipcd.vicp.net&loginport=8001&user=guest&password=guest&window=1&chanel=0" target="demo">成都在线演示</a>
 
test.asp页的代码包括ASP动态获取链接的代码和ActiveX的显示代码:
<%
'==================================
'从网页获取调用接口
'==================================
dim WindowMode,Text,PopupMenu,LoginIp,LoginPort,User,PassWord,Window,Chanel '变量分别为窗口模式,是否显示窗口说明,是否显示弹出菜单IP或域名,数据端口,用户,密码,当前窗口,连接通道
WindowMode=request("WindowMode")
if WindowMode="" then WindowMode=1
Text=request("Text")
if Text="" then Text=1
PopupMenu=request("PopupMenu")
if PopupMenu="" then PopupMenu=0
loginip=request("LoginIp")
loginport=request("LoginPort")
user=request("user")
Password=request("password")
window=request("window")
chanel=request("chanel")
%>
<script>                      
function loadmm()
{
//JS直接获取ASP的动态参数
 TelCtl.ShowHintBar(<%=text%>); //显示窗口文本
 TelCtl.ShowPopupMenu(<%=PopupMenu%>); //显示弹出菜单
 TelCtl.SetVideoMode(<%=WindowMode%>); //显示窗口模式,即几画面分割
 TelCtl.SetCurrentVideoWindow(<%=Window%>); //显示当前窗口
 TelCtl.SetLoginPort(<%=LoginPort%>); //显示数据端口
 TelCtl.Login("<%=LoginIp%>","<%=User%>","<%=PassWord%>"); //登录
 switch (TelCtl.Login("<%=LoginIp%>","<%=User%>","<%=PassWord%>")) {
      case -1:
     alert("连接服务器的用户过多,请稍后再试!");
  break;
      case -2:
        alert("连接服务器失败!");
        break;
   case -5:
        alert("网络不通,服务器地址或端口错误不能连接服务器,请稍后再试!");
        break;
    }
 TelCtl.Connect("<%=LoginIp%>","<%=Chanel%>"); //连接
 }
function unloadmm()
{
//断开连接的函数
TelCtl.DisConnect();
}
</script>
</head>
<body οnlοad=javascript:loadmm() οnunlοad=Javascript:unloadmm()>
<object classid="clsid:DB6D5E21-AA44-4A1B-93F0-0748385A2D75" codebase="demo/WebView.CAB#version=1,0,0,12" name="TelCtl" width="512" height="384" hspace="0" vspace="0" align="center" id="DwmCtl">
</object>
 
上面的loadmm函数放在body中就可以在登录时直接调用了。
方法二:用纯JS实现当前页无刷新调用

写了一个JS函数放在head之间如下:
<script>                      
function play(loginip,user,password,loginport,chanel)
{
 //调用传递过来的多个参数,TelCtl为OCX对象
 //alert(loginip+user+password+loginport+chanel);
 TelCtl.SetLoginPort(loginport); //显示数据端口
 TelCtl.Login(loginip,user,password); //登录
 switch (TelCtl.Login(loginip,user,password))
{
   //这里是登录返回值
   case -1:
       alert("连接服务器的用户过多,请稍后再试!");
       break;
    case -2:
        alert("连接服务器失败!");
        break;
    case -5:
        alert("网络不通,服务器地址或端口错误不能连接服务器,请稍后再试!");
        break;
     }
 TelCtl.Connect(loginip,chanel);//连接
}
</script>
在页面上有多个链接,每个链接对应不同的参数调用上述play()函数,这时我们可以把链接写为:
<a href=javascript:play('aipcd.vicp.net','guest','guest','8001','0')>成都在线演示</a>
下边找个地方放ActiveX控件的代码:
<object classid="clsid:DB6D5E21-AA44-4A1B-93F0-0748385A2D75" codebase="
http://www.XXXX.com/demo/WebView.CAB#version=1,0,0,12" name="TelCtl" width="512" height="384" hspace="0" vspace="0" align="center" id="DwmCtl">
     <img src="images/grey.gif"; data-url="
http://www.XXXX.com/demo/down.gif" width="512" height="384" hspace="0" vspace="0" align="center"> <!-这里是没下载控件时显示的图片->
</object>
通过这几段代码我们可以实现无刷新的在当前页面调用不同的参数给ActiveX控件。
本文来源于流浪天下 [http://www.maie.name/]
详细地址为:http://www.maie.name/article.asp?id=24

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值