OCX在IE10上能正常加載,在IE8上出現崩潰解決思路

###OCX在IE10上能正常加載,在IE8上出現崩潰解決思路javascript

  • 若是對你有用請給個贊

背景

最初開發的時候是在ie8上開發的,可是在中途開發出現了ie8崩潰,因項目緊就用ie10開發了。css

分析過程

  • 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下不支持該錯誤語法。因此必定要語法規範化。html

總結

仍是那句老話,碰到bug千萬別懼怕,這個時候正是證實你的時候了,其實bug就是躲在很不起眼的地方,要有耐心,恆心,和自信心 最後代碼必定要規範化,該重構就要重構,真是血的教訓java

若是以爲對你有幫助,給個贊,tomcat

QQ交流羣:186392304(已滿)請加QQ羣:181666459服務器

相關文章
相關標籤/搜索