在asp.net项目项目中,使用了一个第三方的没有签名的ActiveX控件,代码如下:
<SCRIPT LANGUAGE="JavaScript">
function Print()
{
printClass.PrintBar("0405-0300-0056<@>大客车(柯斯达)<@>车辆<@>2010年7月21日","big");
}
</SCRIPT>
<td width="35" height="30" align="center">
<OBJECT id="printClass" codeBase="PrintBarXControl1.cab" height="0"
hspace="0" width="0" data="data:application/x-oleobject;base64,NHJasYn+TEC1EGtzkIyXNFRQRjAFVEVkaXQABExlZnQCAANUb3ACAAVXaWR0aAJ5BkhlaWdodAIbAAA="
align="center" vspace="0" classid="clsid:B15A7234-FE89-404C-B510-6B73908C9734" VIEWASTEXT>
</OBJECT>
</td>
总是提示 'printClass' 未定义,
一开始考虑到是因为ActvieX未签名,故修改了,IE的安全设置,但还是报同样的错误。
最后google到一个帖子:http://topic.csdn.net/u/20090728/17/7ee50f99-b2ef-41ef-900b-6854b8ba77c4.html
终于解决了,将代码修改为
var printClass = document.getElementById("printClass");
printClass.PrintBar("0405-0300-0056<@>大客车(柯斯达)<@>车辆<@>2010年7月21日","big");
详情可以参考:
net aspx页面定义ActiveX控件的<object></object>定义写的位置问题(http://topic.csdn.net/u/20090728/17/7ee50f99-b2ef-41ef-900b-6854b8ba77c4.html)
Asp.Net 中使用客户端Activex控件需要注意的事情 (http://www.cnblogs.com/Duiker/archive/2005/08/13/213981.html)