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调用css的两种方式
- JavaScript实现二级、多级(N级)联动下拉列表框更新版,支持IE6,FireFox,函数和类两种调用方式,支持到N级,非常通用
- JavaScript实现二级、多级(N级)联动下拉列表框更新版,支持IE6,FireFox,函数和类两种调用方式,支持到N级,非常通用。
- javascript消除字符串两边空格的两种方式,面向对象和函数式编程。python oop在调用时候的优点
- 自制Javascript分页插件,支持AJAX加载和URL带参跳转两种初始化方式,可用于同一页面的多个分页和不同页面的调用
- JavaScript实现二级、多级(N级)联动下拉列表框更新版,支持IE6,FireFox,函数和类两种调用方式,支持到N级,非常通用。
- JavaScript实现二级、多级(N级)联动下拉列表框更新版,支持IE6,FireFox,函数和类两种调用方式,支持到N级,非常通用。
- 通过Javascript调用微软认知服务情感检测接口的两种实现方式
- 9ec4 【javascript】Javascript中调用对象内函数的两种方式.
- 客户端调用webservice的两种方式
- javascript中 对象创建的三种方式及其调用方法
- go 调用shell命令 两种方式(有无返回值)
- Javascript 调用C# 代码并传递参数的两种方法
- javascript语言两种变量类型及存储方式
- 【javascript】原生js更改css样式的两种方式
- php用curl调用接口方法,get和post两种方式
- Python对象方法两种调用方式
- 网页制作之JavaScript部分3--事件及事件传输方式(函数调用 练习题 )重要---持续更新中
- JavaScript系列:函数调用方式
- android中可以通过两种方式调用接口发送短信