1. 先注册MSCOMM32.OCX插件;具体步骤如下:
2、删除%windir%\system32\mscomm32.ocx
3、运行reg_ocx.bat //其中需要导入自己的mscomm32.ocx ,下载链接:http://pan.baidu.com/s/1uzjUT
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{648A5600-2C6E-101B-82B6-000000000014}]
[-HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905]
copy mscomm*.* %windir%\system32\ /y
Regsvr32 %windir%\system32\mscomm32.ocx /s
Regsvr32 %windir%\system32\actxprxy.dll /s
Regsvr32 %windir%\system32\shdocvw.dll /s
reg add "HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905" /v "" /d "kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun" /f
<title>JavaScript串口(通过vb的MSCOMM32.OCX控件)</title>
<script id="clientEventHandlersJS" language="javascript">
var mytime=myDate.toLocaleTimeString(); //获取当前时间
//myDate.toLocaleString( ); //获取日期与时间
if(MSComm1.CommEvent==1)//如果是发送事件
document.getElementById("Textarea1").value =mytime + ":发送成功!\n" + document.getElementById("Textarea1").innerText;
else if(MSComm1.CommEvent==2)//如果是接收事件
//document.getElementById("Textarea1").innerHTML =
//"" + document.getElementById("Textarea1").innerText + mytime + ":" + temp + "";
document.getElementById("Textarea1").value =mytime + ":" + temp + "\n" + document.getElementById("Textarea1").innerText;
<script language="javascript" for="MSComm1" event="OnComm">
// MSComm1控件每遇到OnComm事件就调用MSComm1_OnComm()函数
<script language="vbscript" type="text/vbscript" src="VBScript.vbs"></script>
<script language="JavaScript" type="text/JavaScript">
<script type="text/javascript" src="JScript.js"></script>
<object classid="clsid:648A5600-2C6E-101B-82B6-000000000014" id="MSComm1" codebase="C:\Windows\System32\MSCOMM32.OCX"
type="application/x-oleobject" style="left: 54px; top: 14px">
<param name="CommPort" value="2"><!--设置并返回通讯端口号。-->
<param name="DTREnable" value="1">
<param name="Handshaking" value="0">
<param name="InBufferSize" value="1024">
<param name="InputLen" value="0">
<param name="NullDiscard" value="0">
<param name="OutBufferSize" value="512">
<param name="ParityReplace" value="?">
<param name="RThreshold" value="1">
<param name="RTSEnable" value="1">
<param name="SThreshold" value="2">
<param name="EOFEnable" value="0">
<param name="InputMode" value="0"><!--comInputModeText 0 (缺省) 通过 Input 属性以文本方式取回数据。comInputModeBinary 1 通过 Input 属性以二进制方式检取回数据。-->
<param name="DataBits" value="8">
<param name="StopBits" value="1">
<param name="BaudRate" value="9600">
<param name="Settings" value="9600,N,8,1">
<input type="submit" name="Submit" value="OpenAndSend" οnclick="OpenPort()">
<input type="submit" name="Submit" value="Send" οnclick="SendMessage()">
<input type="submit" name="Submit" value="close" οnclick="ClosePort()">
<textarea id="txtReceive" style="width: 391px; height: 100px">0x68,0x91,0x01,0x01,0x00,0x0D,0x21,0x68,0x01,0x0A,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x80,0x4D,0x16</textarea><br />
<textarea id="Textarea1" style="width: 391px; height: 405px"></textarea>
dim strReturn,i,ThisCharCode,innerCode,Hight8,Low8,NextCharCode
ThisCharCode=AscB(MidB(vIn,i,1))
strReturn=strReturn & Chr(ThisCharCode)
NextCharCode=AscB(MidB(vIn,i+1,1))
strReturn=strReturn&Chr(CLng(ThisCharCode)*&H100+CInt(NextCharCode))
function send_request(url,processRequest,para) {
if(window.XMLHttpRequest) { //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//设置MiME类别
http_request.overrideMimeType('text/xml');
else if (window.ActiveXObject) { // IE浏览器
http_request = new ActiveXObject("Msxml2.XMLHTTP");
http_request = new ActiveXObject("Microsoft.XMLHTTP");
if (!http_request) { // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
//http_request.onreadystatechange = processRequest; function(){HandleStateChange(123)};
http_request.onreadystatechange = function(){processRequest(para)};
http_request.open("GET", url, true);
if(!document.getElementById('axMSComm1').PortOpen){
document.getElementById('axMSComm1').PortOpen = true;
alert("Port already opened !");
//document.getElementById('MSComm1').Output=document.getElementById('Text1').value;
return document.getElementById(id);
if(!document.getElementById('MSComm1').PortOpen){
document.getElementById('MSComm1').PortOpen = true;
alert("Port already opened !");
//document.getElementById('MSComm1').Output=document.getElementById('Text1').value;
if(!document.getElementById('MSComm1').PortOpen){
document.getElementById('MSComm1').PortOpen = true;
alert("Port already opened !");
var result = $('txtReceive').value;
var results = result.split(',');
for(var i=0;i<results.length;i++)
cmd_send += String.fromCharCode(eval(results[i]));
MSComm1.Output=cmd_send;//发送命令
var result = $('txtReceive').value;
var results = result.split(',');
for(var i=0;i<results.length;i++)
cmd_send += String.fromCharCode(eval(results[i]));
MSComm1.Output=cmd_send;//发送命令
function String.prototype.stringToArray() //串转为数组
for (var i=0 ; i<this.length ; i++)
function Array.prototype.arrayToStringtring() //数组转为传
for (var i=0 ; i<this.length ; i++)
str += String.fromCharCode(this[i]);
function Array.prototype.or(ar) //数组或操作
if (ar.length>this.length) l = this.length;
function Array.prototype.and(ar) //数组与操作
if (ar.length>this.length) l = this.length;
for(var i=0;i<data.length;i++)
return temp.toUpperCase() +data.toUpperCase();
function endParseMessage(data)
if (http_request.readyState == 4)
if (http_request.status == 200)
$('Textarea1').value +="\r\n"+http_request.responseText;