您的位置:首页 > Web前端 > JavaScript

JavaScript调用com的两种方式

2014-05-12 08:39 363 查看

转自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即可。

[delphi]
view plaincopyprint?

procedure TForm1.Button1Click(Sender: TObject);  
var  
  o: IDemo;  
begin   
  o := CoDemo.Create;   
  Caption:= o.Method1('123');  
end;  

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

             (1)

[html]
view plaincopyprint?

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

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

[delphi]
view plaincopyprint?

LIBID_Project1: TGUID = '{DAA74E33-0A12-452A-A0AA-8AA1CE239806}';  
  
IID_IDemo: TGUID = '{DC66EC7C-FA4E-4593-ACB0-92E477F297FD}';  
CLASS_Demo: TGUID = '{1C93CD11-2021-4D39-ABA2-FDBBEC655F23}';  

(2)

[html]
view plaincopyprint?

<html>  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">   
    <title>TestAxObj</title>  
</head>  
<body style="background-color:whitesmoke; margin:5px">  
<form method="post" action="">  
    <script type="text/javascript" language=javascript>  
        var tc1 = new ActiveXObject("Project1.Demo");    
        var s = "test";  
        s = tc1.Method1("123");    
        alert(s);  
    </script>  
</body>  
</html>   

其中("Project1.Demo")是由同上的内容获取的。测试一下,就可以看到提示信息了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript COM
相关文章推荐