网络编程
位置:首页>> 网络编程>> JavaScript>> WSC脚本部件技术:利用Javascript编写ActiveX控件

WSC脚本部件技术:利用Javascript编写ActiveX控件

作者:Rimifon 来源:无忧脚本 发布时间:2008-05-05 13:13:00 

标签:wsc,脚本,acticex,控件,js

一个简单的例子:

将如下代码另存为.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"))

这样能防止网络故障而出现的错误。

0
投稿

猜你喜欢

  • background-clip 和 background-origin 是 CSS3 中新加的 background module 属性,用
  • 从今天起,我将陆续将 ppk on JavaScript 的读书心得发布到这个blog上。ppk是我所景仰的一位web开发者,原因无它,只是
  • 用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的 SELECT语句,另外一种就是更新语句,也叫做数据操作语句。言外之 意
  • 假如不使用INSTEAD OF触发器或可更新分区视图而是通过视图来修改数据,那么再修改之前,请考虑下列准则:◆如果在视图定义中使用了 WIT
  • 阅读上一章:Chapter 7 锚点 Chapter 8 再谈清单先前在第一章,我们讨论过几种标记清单的做法,研究以<ul>和&
  • 本文中介绍了一个MySQL的存储过程,其中涉及Cursor的使用,示例如下:CREATE PROCEDURE `justifyGroupNu
  • 平时每逢alexa排名更新时,我都需要将所有相关的同类网站的排名整理一下,看一下这些对手网站的排名更新情况。做的多了,也就烦了,虽然也才30
  • 原理:第一步:应用程序把查询SQL语句发给服务器端执行。我们在数据层执行SQL语句时,应用程序会连接到相应的数据库服务器,把SQL语句发送给
  • 一图胜“十”言:SQL Server 数据库总结 一个大概的总结 经过一段时间的学习,也对数据库有了一些认识。 数据库基本是由表,关系,操作
  • 题目:用 JavaScript 代码实现空位补零,比如 pad(12, 3) => 012实现一:/* 平淡无奇法 */functio
  • 1. 游戏是更注重于体验的产品,所以应该将游戏本省做得更加炫动和增加参与感觉。2. 网络游戏和单击游戏的区别在于社会化的添加,所以运用好这样
  •  你用过css么?当然,我是指你喜欢做网页的话,用过?很好,那你用过它的特效么?没有?那请跟我来。让我先通俗的介绍一下css,cs
  • 一些简单的代码简化下面是一个简单示例,它说明了 jQuery 对代码的影响。要执行一些真正简单和常见的任务,比方说为页面的某一区域中的每个链
  • 一个js用星投票的例子,不是常见的图片版,当然你如果会点js代码的话应该可以改为更加美观的图片投票,原理都一样。本程序只演示了读取星的个数,
  • 像在下拉菜单中选择省、市这样的操作,我一直用ASP来创建生成列表函数,把它们保存在一个Include文件中,用的时候就加载。这样做确实有个不
  • 表的故障检测和修正的一般过程如下:◆ 检查出错的表。如果该表检查通过,则完成任务,否则必须修复出错的数据库表。◆ 在开始修复之前对表文件进行
  • #region 读写xml文件的2个小函数,2005 4 2 by hyc  public void 
  • web2.0的标志是Ajax的异步通信的发掘,给我们带来像google map,google suggest 这样令人惊叹的东西。而Ajax
  •   在ASP中使用FSO组件生成HTML静态页面,共有两个页面index.htm是首页.程序比较简单,主要是用了ASP里的文件操作
  • 在标志设计中文字与图形元素总是紧密配合,只有恰当的字体与图形搭配时才能发挥最大的视觉效果。这也意味着你不能抛开图案,只是一厢情愿地选择你自己
手机版 网络编程 asp之家 www.aspxhome.com