###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
来源:oschina
链接:https://my.oschina.net/u/1444819/blog/626646