OCX在IE10上能正常加载,在IE8上出现崩溃解决思路

一曲冷凌霜 提交于 2019-12-09 15:23:12

###OCX在IE10上能正常加载,在IE8上出现崩溃解决思路

  • 如果对你有用请给个赞

背景

最初开发的时候是在ie8上开发的,但是在中途开发出现了ie8崩溃,因项目紧就用ie10开发了。

分析过程

  • 1:单页版的ocxtest.html 是否可以
  • 2: ocxtest.html放在tomcat下是否可以
  • 3:ocxtest.jsp 放在tomcat下是否可以
  • 4:用controller跳转到ocxtext.jsp是否可以
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Test ActiveX</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">

<script language='javascript' for=SMNOCX event=NotificationWebPage>
	fun2(arguments[0])
</script>
<script language="javascript">
		function startLook() {
			alert("");
			document.getElementById("SMNOCX").setNetServerInfo(
					'61000000002000000236', '192.168.21.248', 8888, '12501');
			document.getElementById("SMNOCX").setSipInfo(216,
					'61000000001320000001', '192.168.21.248', 12501,
					'61000000002000000236');
		}
	</script>
</head>
<body>
	<div style="width:; height: ; margin-top:200px; margin-left: 300px; margin-right: auto;border: solid 10px #000;display:block;position:absolute" >
		<div>
			<OBJECT ID="SMNOCX" WIDTH=900px HEIGHT=700px
				classid="CLSID:FF32E4A7-502F-4DC8-B3A9-1A4542734A93">
				<PARAM NAME="_Version" VALUE="65536">
				<PARAM NAME="_ExtentX" VALUE="12806">
				<PARAM NAME="_ExtentY" VALUE="1747">
				<PARAM NAME="_StockProps" VALUE="0">
			</OBJECT>
		</div>
	</div>
	<div style="width:; height: ; margin-top:900px; margin-left: 300px; margin-right: auto;border: solid 10px #000;display:block;position:absolute">
		<div>
			<button width=200 height=100
				style="margin-left: auto margin-right:auto" onClick="startLook()">
				一键预览</button>
		</div>
	</div>
</body>
</HTML>

分析结果

以上四点都可以,我记得用vs2010打开ocx通过打印日志查看,一直认为是页面加载ocx时,出现 在此函数int CSMNOcxCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 进不去该函数里面去 一直以为是ocx,直到我最后问题解决之前也是这么认为的,但是人家就说单页好着为啥会放到你的服务器就有问题了,我只能表示我也解释不通,只有继续去排查以上四个问题,结果发现真的这四个放在页面上都没有问题,我想是不是我的加载页面indexocx.jsp 哪里语法有问题,我开始狂删东西,什么js,css,无用的都干掉,对比正确的ocxtest.jsp 最后终于发现bug的源头 原来indexocx.jsp 因出现了<head>......<head>......</head>标签导致问题,删除多余的head后就好了,查资料是因为ie8下不支持该错误语法。所以一定要语法规范化。

总结

还是那句老话,碰到bug千万别害怕,这个时候正是证明你的时候了,其实bug就是躲在很不起眼的地方,要有耐心,恒心,和自信心 最后代码一定要规范化,该重构就要重构,真是血的教训

如果觉得对你有帮助,给个赞,

QQ交流群:186392304(已满)请加QQ群:181666459

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!