我用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>

解决方案 »

  1.   

    Internet选项-》安全   有两个选项:Internet和本地Intranet,你设置Internet那个选项的安全级别看看。
      

  2.   

    这两个选项的安全性都降低了,可是通过“http://127.0.0.1:9000/yyserver/CARDOCX.HTM”访问打开页面时还是没有任何提示,只是显示一个控件的红叉。
      

  3.   

    页面IE管理的加载项中也能看到该控件,防火墙也关闭了,单独用IE打开这个HTML就可以,通过本机服务器访问就显示红叉。
      

  4.   

    这个应该和防火墙没关系,主要还是浏览器安全设置的问题。
    建议把你的应用加到信任站点中,再自定义受信任站点的安全级别设置项即可解决。
    主要是 ActiveX 控件 和 脚本 的执行权限要降低。
      

  5.   

    谢谢楼上,我以前一直用“http://127.0.0.1:9000/yyserver/CARDOCX.HTM”怎么降低安全级别都不好用;加入信任站点后好用了。
    我又用“http://localhost:9000/yyserver/CARDOCX.HTM”访问,不加信任站点,也好用了。
    说明:127.0.0.1走网络,localhost访问本地;现在明白了。
      

  6.   

    localhost 要比IP地址安全性药低的多