实例1:
1 a.jsp
<script src="search.js" type="text/javascript"></script>
<div>
<a href="javascript:void(0)" id="import" οnclick="anorectaSearch.import()">导入</a>
</div>
2 a.js
var anorectaSearch = (function() {
$(function() {
alert(1);
});
function importTable(){
var dialogParams = {
id : "d1",
url : "/showAnorectaImport",
param : {},
height : 20,
width : 75,
title : "导入"
};
$.dialog(dialogParams);
}
return {
import :importTable
};
})();
3 问题症状:
页面加载不到search.js, alert(1)不弹出;ie8, F12调试,报SCRIPT1028: 缺少标识符、字符串或数字 ;
点击页面 “导入”,F12调试,报SCRIPT5009: “anorectaSearch”未定义;
火狐,谷歌,ie9都正常;仅ie8有问题;
4 原因:js的错误导致js加载的失败,进而“anorectaSearch”未定义
return {
import : importTable
};
中应该为
return {
importTable : importTable
};
前后名称一致,同方法名一致即可;
jsp : <a href="javascript:void(0)" id="import" οnclick="anorectaSearch.importTable ()">导入</a>
实例2:点击页面查询按钮,js正常调用,但list框刷新,但list不显示;火狐,谷歌,ie9都正常;仅ie8有问题
1 b.jsp :
<div class="section" id="top_all">
<div class="searchbox">
<form id="searchForm">
<table>
<tr>
<td >
<span οnclick="anorectaSearch.search(1)" > </span>
</td>
</tr>
</table>
</form>
</div>
<div id="resultDiv">
</div>
</div>
</div>
2 原因:多了一个</div>,去掉即可。
总结:火狐,谷歌,ie9都正常;仅ie8有问题;这种现象:先查js和jsp的格式是否严格,例如 js的逗号“,”“;”问题, jsp里的多一个</div></td>等,ie8对这些要求严格;
chrome 下能成功加载js, ie加载不成功的原因只有一个:你的js代码没有严格按照规范来写。
比如说: var a={one:1,two:2,}
这句代码是可以再chrome下执行成功的,但ie下会报错!
改成var a={one:1,two:2} ie就能识别了!