前文已经介绍了《使用IE测试COM》,那么我们用一个实际的实例来使用他。
在这之前,我们需要了解2个Javascript函数:
使用这个函数来替换多余的空格。
str.replace(/\s/g, "");
字符串转换成字符数组。
string.split(",");
我们把所有的方法放到一个对象(RepoInfo)中。
var RepoInfo = { };RepoInfo.getObj = function(objName) {
return new ActiveXObject(objName);
};
RepoInfo.getArray = function(str) {
var ret = new Array(16);
var string = str.replace(/\s/g, "");
ret = string.split(",");
return ret;
};
RepoInfo.decode = function(string) {
if (string == null) return;
var obj = RepoInfo.getObj("repoInfo.LabelInfo");
var edtView = document.getElementById("edtView");
edtView.value = " ";
var str = RepoInfo.getArray(string);
if (obj != null)
edtView.value = obj.getInfo(str);
};从输入框获取字串作为js方法的输入参数,注意:两种引号的配合使用。
<input type="button" id="btnOk" value="执行数据解析" onClick="RepoInfo.decode(document.getElementById('edtData').value)" />
标签数据:
执行结果:
三、源代码(含js代码)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>报文数据信息 - IE</title>
<script type="text/javascript">
var RepoInfo = {
};
RepoInfo.getObj = function(objName) {
return new ActiveXObject(objName);
};
RepoInfo.getArray = function(str) {
var ret = new Array(16);
var string = str.replace(/\s/g, "");
alert(string);
ret = string.split(",");
return ret;
};
RepoInfo.decode = function(string) {
if (string == null) return;
var obj = RepoInfo.getObj("repoInfo.LabelInfo");
var edtView = document.getElementById("edtView");
edtView.value = " ";
var str = RepoInfo.getArray(string);
if (obj != null)
edtView.value = obj.getInfo(str);
};
</script>
</head>
<body>
<textarea name="note" cols="98" rows="7" readonly="readonly">
注意:本测试只能运行在IE浏览器!
首先,要注册Dll(regsvr32 repoInfo.dll);
然后,从“BinJiang_2005.rep”(滨江站),复制行数据到“标签数据”框。
示例(固定格式):
0xD3, 0x05, 0x94, 0x84, 0x00, 0x13, 0x51, 0x2F, 0x59, 0x34, 0x57, 0x45, 0x58, 0x50, 0x41, 0x98</textarea>
<br>
<br>
标签数据:<input type="text" id="edtData" size="98" />
<br>
<br>
执行结果:<input type="text" id="edtView" size="50" />
<br>
<br>
<input type="button" id="btnOk" value="执行数据解析" onClick="RepoInfo.decode(document.getElementById('edtData').value)" />
</body>
</html>
编后话:
国内只有两家正规的铁路车号开发机构(所/企业):远望谷和威克公司。
1. replace 方法
2. RegExp 对象
3. split 方法
原文地址:http://blog.csdn.net/xiaobin_hlj80/article/details/45607383