我用javascript调用本地activex控件,该控件是自己写的一个串口操作的控件,已经注册。
在本地直接打开“C:\Tomcat 6.0\webapps\yyserver\CARDOCX.HTM”,提示“允许阻止的内容(A)...”后允许,可以正常使用。
在本地Tomcat服务器上通过http访问就不能正常使用,“http://127.0.0.1:9000/yyserver/CARDOCX.HTM”也没有“允许阻止的内容(A)...”的提示。
不知道是为什么,IE安全性已经降低了,还是不行。
代码如下:
<HTML>
<HEAD>
<TITLE>读卡号</TITLE>
</HEAD>
<BODY>
<OBJECT ID="CardOp"
CLASSID="CLSID:4D798EF2-C15A-4924-9F40-C9AC44A18014"
CODEBASE="CARDOCX.CAB#version=1,0,0,0">
</OBJECT>
读卡号测试
<script language="javascript">
function opencom()
{
var portno;
portno=Form1.selectport.value ;
CardOp.ComPort =portno;
if (CardOp.OpenDev()) ;
alert("串口"+portno+"打开");
}
function closecom()
{
if( CardOp.CloseDev()) ;
alert("串口关闭");
}
function readcardno()
{
opencom();
if(CardOp.getcardno());
Form1.cardno.value=CardOp.SerialNo; closecom();
}
</script>
<form id="Form1" method="post">
<SELECT
id="selectport">
<OPTION selected value="1">1</OPTION>
<OPTION value="2">2</OPTION>
<OPTION value="3">3</OPTION>
<OPTION value="4">4</OPTION>
<OPTION value="5">5</OPTION>
<OPTION value="6">6</OPTION>
</SELECT>
<INPUT type="button" value="打开" onclick="opencom()">
<INPUT onclick="closecom()" type="button" value="关闭">
<INPUT TYPE="text" NAME="cardno" id="cardno"> <INPUT type="button" value="读卡" onclick="readcardno()"> </form>
</BODY>
</HTML>
在本地直接打开“C:\Tomcat 6.0\webapps\yyserver\CARDOCX.HTM”,提示“允许阻止的内容(A)...”后允许,可以正常使用。
在本地Tomcat服务器上通过http访问就不能正常使用,“http://127.0.0.1:9000/yyserver/CARDOCX.HTM”也没有“允许阻止的内容(A)...”的提示。
不知道是为什么,IE安全性已经降低了,还是不行。
代码如下:
<HTML>
<HEAD>
<TITLE>读卡号</TITLE>
</HEAD>
<BODY>
<OBJECT ID="CardOp"
CLASSID="CLSID:4D798EF2-C15A-4924-9F40-C9AC44A18014"
CODEBASE="CARDOCX.CAB#version=1,0,0,0">
</OBJECT>
读卡号测试
<script language="javascript">
function opencom()
{
var portno;
portno=Form1.selectport.value ;
CardOp.ComPort =portno;
if (CardOp.OpenDev()) ;
alert("串口"+portno+"打开");
}
function closecom()
{
if( CardOp.CloseDev()) ;
alert("串口关闭");
}
function readcardno()
{
opencom();
if(CardOp.getcardno());
Form1.cardno.value=CardOp.SerialNo; closecom();
}
</script>
<form id="Form1" method="post">
<SELECT
id="selectport">
<OPTION selected value="1">1</OPTION>
<OPTION value="2">2</OPTION>
<OPTION value="3">3</OPTION>
<OPTION value="4">4</OPTION>
<OPTION value="5">5</OPTION>
<OPTION value="6">6</OPTION>
</SELECT>
<INPUT type="button" value="打开" onclick="opencom()">
<INPUT onclick="closecom()" type="button" value="关闭">
<INPUT TYPE="text" NAME="cardno" id="cardno"> <INPUT type="button" value="读卡" onclick="readcardno()"> </form>
</BODY>
</HTML>
建议把你的应用加到信任站点中,再自定义受信任站点的安全级别设置项即可解决。
主要是 ActiveX 控件 和 脚本 的执行权限要降低。
我又用“http://localhost:9000/yyserver/CARDOCX.HTM”访问,不加信任站点,也好用了。
说明:127.0.0.1走网络,localhost访问本地;现在明白了。