能给出具体的javascript调用activex的步骤吗?

Scarroot 2006-03-10 11:06:18
能给出具体的javascript调用activex的步骤吗?

我所理解的如下:
1.创建ocx控件
2.打包成cab文件.
3.在网页上这样调用:
<OBJECT ID="control1"
CLASSID="clsid:A9ED596A-FE20-479C-A1A8-8D4B40E7DAA2"
CODEBASE="http://192.168.1.99/xxxx.cab"
WIDTH=200 HEIGHT=100 HSPACE=0
VSPACE=0 VIEWASTEXT>
</OBJECT>
<script>
control1.somemethod();
</script>

但我做的时候出现的问题和疑惑:
1.创建ocx控件:
创建成dll也可以吗?
2.打包成cab文件.
是不是一定要打包成cab,ie才能自动注册?还是注册的过程要手动去做?
3.这个clsid是不是IIS机上"HKEY_CLASSES_ROOT"下面的,对应控件名称的clsid??,
比如说这样,我用regsvr32.exe注册了控件control001,然后我在asp中,得确可以调用得到control001的方法,这么说明我的机子得确是已经注册了这件控件的,
但我在iis机上创建这样的一个页面:
<OBJECT ID="control1"
CLASSID="clsid:A9ED596A-FE20-479C-A1A8-8D4B40E7DAA2"
CODEBASE="http://192.168.1.99/xxxx.cab"
WIDTH=200 HEIGHT=100 HSPACE=0
VSPACE=0 VIEWASTEXT>
</OBJECT>
<script>
control1.somemethod();
</script>
然后在iis机上浏览却是提示没有注册这控件的.
(这里说"iis机",是指iis服务器和客户浏览网页所用的机子是同一台机子).
用这样的方法也不行:
var obj = new Object("xx.clsxx");
obj.Get_x_string(7);


:(,表达得不好,
望达人指点.谢谢

...全文
1046 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Scarroot 2006-03-13
  • 打赏
  • 举报
回复
d
Scarroot 2006-03-11
  • 打赏
  • 举报
回复
ddd
clare2003 2006-03-10
  • 打赏
  • 举报
回复
1.创建ocx控件:
创建成dll也可以吗?
------------------
可以的,系统的许多com组件都是以dll发布的
2.打包成cab文件.
是不是一定要打包成cab,ie才能自动注册?还是注册的过程要手动去做?
-----------------------------------
手动注册也可以 使用regsvr32.exe
3.new ActiveXObject("xx.clsxx");//不是 object

clare2003 2006-03-10
  • 打赏
  • 举报
回复
var obj = new ActiveXObject("xx.clsxx");//不是 object
obj.Get_x_string(7);
Scarroot 2006-03-10
  • 打赏
  • 举报
回复
..........
真的是不明白服务器端注册和客户端注册的过程是不是同一个过程,
比如说这样:我本机装有iis,服务器端和客户端都是我同一台机,
我创建了一个dll,然后用regsvr32.exe注册了这个dll,
我创建了这样的一个页面
cc01.asp
<%
dim obj
set obj = server.CreateObject("cc01.c07") '---------------1
response.Write obj.aa()
%>
<BODY>
<OBJECT ID="UserControl1"
CLASSID="CLSID:A0AB933F-8C00-401C-AB36-4FF1BCC123A9"
CODEBASE="http://192.168.1.99/cc01.CAB#version=1,0,0,0" VIEWASTEXT>
</OBJECT><!----------------------------------------------2//-->
</BODY>

<script>
//alert(UserControl1.aa()); //----------------------------3
var obj = new ActiveXObject("cc01.c07");//------------------4
alert(obj.aa());
</script>

<!--
dll的内容
Private a As String
Private b As String
Private Sub Class_Initialize()
a = "testA"
b = "testB"
End Sub
Public Function aa() As String
aa = a
End Function
Public Function bb() As String
bb = b
End Function
//-->


一,当我用<1>的方法,在asp中创建调用这个object 时,是可以成功运行得出"testA"的结果的.
二,当我用<2>的方法,在html中创建这个object时,确定的是我系统得确是已经注册了这个DLL的,
因为我查注册表可以看到.HKEY_CLASSES_ROOT\cc01.c07,也得到他的clsid,然后我把<OBJECT></OBJECT>里的clsid变动为其它的,那我用ie浏览http://127.0.0.1/cc01.asp时,他是
会提示我下载这个activex的.这么说明我系统得确是已经注册了这个DLL.
三,当我用<3>的方法时,提示"对象不支持此属性和方法".
四,当我用<4>的方法时,提示"服务器不能创建对象"


.................
究竟是我哪错了.....
恳请各位哥哥姐姐帮帮忙,不胜感激.

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧