JavaScript调用com的两种方式

转自http://blog.csdn.net/sj120418/article/details/8333727

JavaScript调用com的两种方式

        通过JavaScript来调用com的方式,之前就因为项目需要,所以处理过,但是之前觉得没有什么所以也没有记录什么的,昨天突然想找这方面的资料,结果一时间有些困难,现在讲这些内容在整理一下,算是个备忘吧。

        这两种调用方式,可以说大同小异,主要区别在于如何找到这个com的组件,下面就介绍一下:

        1、首先使用delphi创建一个com,这个com有一个方法:function Method1(const AData: WideString): WideString;将传入的值返回。

        2、为了保证这个com是可以运行的,首先建了一个delphi的例子,来通过com的方式调用,就是一个按钮,点击一下将com取回的值设置为窗体的标题,测试了一下ok,注意:这个com能使用的前提是这个com已经注册了(通过regsvr32注册过了),否则会提示没有注册,在通过type导入com时可能会提示“ole”错误,这个错误是由于com需要管理员权限,使用管理员权限开启delphi即可。

  1. procedure TForm1.Button1Click(Sender: TObject);  
  2. var  
  3.   o: IDemo;  
  4. begin   
  5.   o := CoDemo.Create;   
  6.   Caption:= o.Method1('123');  
  7. end;  

        3、前面证明这个dll已经没有问题,现在通过com来调用一下:

             (1)

  1. <html>  
  2. <head>  
  3.     <meta http-equiv="Content-Type" content="text/html; charset=gb2312">   
  4.     <title>TestAxObj</title>  
  5. </head>  
  6. <body style="background-color:whitesmoke; margin:5px">  
  7. <form method="post" action="">  
  8.     <object id="tc1" name="shangj" width="200px" height="20px" style="background-color:red;"  
  9.        classid="CLSID:1C93CD11-2021-4D39-ABA2-FDBBEC655F23">  
  10.     </object>  
  11.   
  12.     <script type="text/javascript" language=javascript>  
  13.         var tc1 = document.getElementById("shangj");  
  14.         //var tc1 = document.getElementById("tc1");均可以  
  15.         var s = "test";  
  16.         s = tc1.Method1("123");    
  17.         alert(s);  
  18.     </script>  
  19. </body>  
  20. </html>  

其中1C93CD11-2021-4D39-ABA2-FDBBEC655F23是由下面获取的

  1. LIBID_Project1: TGUID = '{DAA74E33-0A12-452A-A0AA-8AA1CE239806}';  
  2.   
  3. IID_IDemo: TGUID = '{DC66EC7C-FA4E-4593-ACB0-92E477F297FD}';  
  4. CLASS_Demo: TGUID = '{1C93CD11-2021-4D39-ABA2-FDBBEC655F23}';  
(2)
  1. <html>  
  2. <head>  
  3.     <meta http-equiv="Content-Type" content="text/html; charset=gb2312">   
  4.     <title>TestAxObj</title>  
  5. </head>  
  6. <body style="background-color:whitesmoke; margin:5px">  
  7. <form method="post" action="">  
  8.     <script type="text/javascript" language=javascript>  
  9.         var tc1 = new ActiveXObject("Project1.Demo");    
  10.         var s = "test";  
  11.         s = tc1.Method1("123");    
  12.         alert(s);  
  13.     </script>  
  14. </body>  
  15. </html>   
其中("Project1.Demo")是由同上的内容获取的。测试一下,就可以看到提示信息了。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值