JS检测IE控件是否加载

前言

给同事写了测试用的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>

效果

这里写图片描述

猜你喜欢

转载自blog.csdn.net/LostSpeed/article/details/78456406