WSC脚本部件技术:利用Javascript编写ActiveX控件
作者:Rimifon 来源:无忧脚本 时间:2008-05-05 13:13:00
一个简单的例子:
将如下代码另存为.wsc文件,并右键“注册”(卸载时右键“不注册”)。
<Component>
<registration ProgId=hello.world />
<public>
<property name=testStr />
<method name=add>
<parameter name=x />
<parameter name=y />
</method>
</public>
<script>
var testStr="默认值";
function add(x, y)
{
return x+" + "+y+" = "+(x+y);
}
</script>
</Component>
然后可以通过new ActiveXObject("hello.world")的方法来调用该控件。
例如:(另存为.js后双击运行。)
var com=new ActiveXObject("hello.world");
WSH.Echo(com.testStr);
WSH.Echo(com.add(84,25));
这样就可以将javascript代码嵌入到其他编程语言中。
另外,不注册也可以调用该控件,例如:(另存为.js后双击运行。)
var com=GetObject("script:http://www.zope.org/Members/Rimifon/ZopeTest/Sample.wsc");
WSH.Echo(com.testStr);
WSH.Echo(com.add(84,25));
注意的是,JS的GetObject方法因为安全限制,在IE下可能是不能运行的。
还可以使用
regsvr32 http://www.zope.org/Members/Rimifon/ZopeTest/Sample.wsc
指令对远程脚本部件进行本地注册,也可以使用:
regsvr32 http://www.zope.org/Members/Rimifon/ZopeTest/Sample.wsc /u
进行卸载。
wsc脚本部件注册的控件,受安全限制,因此可能并不适合应用在IE上,比较适合应用在asp或其他编程语言中。 如果服务器注册了该脚本部件,则可以使用:
Set Obj = Server.CreateObject("Hello.World")
如果服务器没有注册该脚本部件,则可以这样:
Set Obj = Server.GetObject("script:http://www.zope.org/Members/Rimifon/ZopeTest/Sample.wsc")
这种方式(这里的URL可以换成本地脚本部件文件所在的绝对地址)。
运用实例:
改写了编程浪子 的js无组件上传,在本地创建远程脚本组件。
<html><head><meta http-equiv="Content-Type"content="text/html;charset=gb2312">
<title>测试远程控件调用</title><%
Dim strInfo
If Request.ServerVariables("Request_Method") = "POST" Then
'Set Upload = Server.CreateObject("Rimifon.Upload")
Set Upload = GetObject("script:http://www.zope.org/Members/Rimifon/ZopeTest/Upload.wsc")
Upload.ReadForm()
strInfo = Upload.SaveFile(".")
Upload.Dispose()
Set Upload = Nothing
End If
Function Info()
Info = strInfo
End Function
%></head><body>
<font color="red"><%=Info()%></font>
<form method=post enctype="multipart/form-data">
<input name="upFile" type="file"><input type="submit">
</form></body></html>
远程调用在Wind2000下测试通过。自己的2003下失败了:(。
本地调用测试通过。
如果服务器没有注册的话,推荐使用本地调用的方法:
Set Upload = GetObject("script:"+Server.MapPath("Upload.wsc"))
这样能防止网络故障而出现的错误。
标签:wsc,脚本,acticex,控件,js
0
投稿
猜你喜欢
面向对象CSS FAQ[译]
2009-10-27 15:59:00
asp下实现代码的“运行代码”“复制代码”“保存代码”功能源码
2011-04-14 10:39:00
MySQL 基本概念
2011-09-10 16:22:34
PHP利用ChatGPT实现轻松创建用户注册页面
2023-05-25 09:22:16
Html的几个小技巧
2011-04-29 14:02:00
2008圣诞节网站特色Logo不完全点评
2008-12-25 18:35:00
Excute后都需要返回一个RecordSet对象吗?
2009-10-28 18:28:00
JavaScript框架比较:选择器
2010-04-20 14:48:00
HTTP状态码
2009-09-21 12:46:00
两行代码实现的QQ窗口抖动效果
2008-09-06 12:34:00
Oracle存储过程入门学习基本语法
2009-03-04 11:00:00
亚马逊购物用户体验分析 (二)
2009-10-25 12:48:00
JavaScript的私有成员
2009-03-25 20:45:00
最新google pr查询接口
2012-03-12 20:00:39
Dreamweaver制作网页11种技巧详解
2007-11-05 14:00:00
开心网上input输入框研究
2009-03-06 12:52:00
SQL SERVER的字段类型介绍
2008-05-23 13:27:00
纯手工打造CSS像素画
2009-03-09 12:57:00
asp如何显示自定义随机信息?
2010-06-08 09:39:00
MySQL Order By索引优化
2011-01-04 19:56:00