前言
给同事写了测试用的IE控件,他要求如果控件没注册或控件dll不在硬盘指定位置时,要有提示.
不知道该咋玩,有搞过的同事给出了解决方法,用JS捕获异常来实现.
测试网页
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<TITLE>对象 my_test_ocx 的 ATL 8.0 测试页</TITLE>
<script type="text/javascript">
function fn_test()
{
var myOcx;
var msg;
var bOk = 0;
var tmp;
msg_set(">> fn_test\r\n");
try {
myOcx = document.getElementById('my_test_ocx');
tmp = myOcx.version() + "\r\n";
msg_append(tmp);
tmp = myOcx.get_cfg_file_path_name() + "\r\n";
msg_append(tmp);
msg = myOcx.interface_do_some_task();
if (65535 == msg) {
msg_append("失败\n");
} else {
msg_append("成功\n");
}
} catch (e) {
msg = "";
msg_append("my_test_ocx控件未注册或不在注册时指定的全路径上!\n");
msg_append("请重新注册控件或走不使用my_test_ocx控件的业务流程\n");
}
msg_append(msg);
msg_append("\n");
}
function msg_empty()
{
textarea_msg_area.value = "";
}
function msg_set(x)
{
textarea_msg_area.value = x;
}
function msg_append(x)
{
textarea_msg_area.value += x;
}
</script>
</HEAD>
<BODY>
<textarea name="textarea_msg_area" rows="20" cols="100">
在按下"testcase"按钮后,开始测试
需要在IE中打开, 然后允许控件运行.
不要用360浏览器打开, 没有允许控件运行的提示.
在Win10X64中的IE中做过测试了, 控件好使.
如果控件未注册或控件方法不存在,会捕获异常,有提示
</textarea>
<br>
<input type="button" "fn_test()" value="testcase" />
<br>
<OBJECT ID="my_test_ocx" CLASSID="CLSID:AA08943D-57FD-4E53-8C09-4D8DADDA00BB"></OBJECT>
</BODY>
</HTML>