<html>
<head>
<title>javascript for mscomm</title>
<script language="JavaScript" type="text/JavaScript">
function OpenPort() {
MSComm1.PortOpen=true;
alert("已执行‘MSComm1.PortOpen=true’");
}
</script>
</head>
<body>
<OBJECT CLASSID="648A5603-2C6E-101B-82B6-000000000014" id=MSComm1 codebase="MSCOMM32.OCX" type="application/x-oleobject" style="LEFT:54px; TOP:14px" >
<PARAM NAME="CommPort" VALUE="1">
<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="1">
<PARAM NAME="EOFEnable" VALUE="0">
<PARAM NAME="InputMode" VALUE="0">
<PARAM NAME="DataBits" VALUE="8">
<PARAM NAME="StopBits" VALUE="1">
<PARAM NAME="BaudRate" VALUE="9600">
<PARAM NAME="Settings" VALUE="9600,N,8,1">
</OBJECT>
<input type="button" value="打开端口" onClick="OpenPort()">
</body>
</html>下面是我用ActiveX Documenter查看我系统里的MSCOMM32.OCXLibrary: MSCommLib (Microsoft Comm Control 6.0)
File: C:\WINDOWS\system32\MSCOMM32.OCX
GUID: {648A5603-2C6E-101B-82B6-000000000014}
Version: 1.1而且我用我电脑上的VB 6.0是可以正常接收数据的Private Sub Form_Load()
    With MSComm1
        .CommPort = 1
        .Settings = "9600,N,8,1"
        .InputLen = 0
        .RThreshold = 1
        .PortOpen = True
    End With
End SubPrivate Sub MSComm1_OnComm()
    Select Case MSComm1.CommEvent
        Case 2
            Text1.Text = Text1.Text & MSComm1.Input
    End Select
End SubPrivate Sub Text1_Change()
Text1.SelStart = Len(Text1.Text)
End Sub即使只写上面的Form_Load()函数,运行VB程序,然后打开超级终端读取COM1,至少超级终端会提示端口被占用但是最上面的那JS却什么反应也没有,我运行了那网页,也点击那按钮了,可是此时再打开超级终端,还是可以正常接收数据(也就是说那JS脚本根本没打开过COM1了...)