IE浏览器存在多种兼容问题
掌握技巧,不再害怕
IE浏览器 对 jquery版本的兼容性
注意:
ie9 / ie8 / ie7 …版本的IE浏览器,不兼容jquery中的部分属性方法;
以 jquery.1.7.2版本为例:
问题描述,示图如下:
代码块简略,示图如下:
html文件,部分代码如下:
...部分省略...
<script src='js/jquery-1.7.2.js'></script>
<body>
...部分省略...
<div class="bottom_box ">
<ul class="ul_">
<li onclick="collection()" id="collection_li"><a href="JavaScript:;" id="collectText">收藏</a></li>
<li onclick="nextPage('up')" ><a href="JavaScript:;" >上一题</a></li>
<li onclick="nextPage('next')"><a href="JavaScript:;" >下一题</a></li>
<li><a ><span id="nowQuestionNum">1</span>/<span id="qtNum" name="qtNum">100</span></a></li>
</ul>
<div class="block_" onclick="subTest()"><a href="JavaScript:;" > 交 卷 </a></div>
</div>
...部分省略...
</body>
<script>
...部分省略...
//显示当前题目
function showMenu() {
var currentPage=$("#currentPage").val();
var arrs = document.getElementsByName("dl_div");
alert(arrs.length);
for(var i=0;i<arrs.length;i++){
if (arrs[i].id=="dl_"+currentPage) {
$("#dl_"+currentPage).show();
//alert("testshow");
} else {
$("#"+arrs[i].id).hide();
//alert("testhide");
}
}
//changeCollect();
getCollection();
}
//上一题/下一题
function nextPage(data){
var qtNum=$("#qtNum").text();
var currentPage=$("#currentPage").val();
var nowQuestionNum =$("#nowQuestionNum").text();
var id=$("#ID_"+nowQuestionNum).val();
var QUESTIONCLASS= $("#QUESTIONCLASS_"+id).val();
var TRUEANSWER=$("#TRUEANSWER_"+id).val();
if(QUESTIONCLASS =='questionType_moreChoose'){
var str="";
$("input[name='moreAnswer_"+id+"']:checkbox").each(function(){
if($(this).attr("checked")){
str += $(this).val()+","
}
})
if(str == ''){
if(confirm("该题您还没有选择答案,确定要前往下一题吗?")){
}else{
return;
}
}else{
subMoreChooseAnswer(id,TRUEANSWER);
}
}
if(data=='up'){
if(eval(currentPage)<=1){
alert("已是第一题!");
return;
}
currentPage=eval(currentPage)-1;
}if(data=='next'){
if(eval(currentPage)>=eval(qtNum)){
alert("已是最后一题!");
return;
}
currentPage=eval(currentPage)+1;
}
$("#currentPage").val(currentPage);
$("#nowQuestionNum").text(currentPage);
showMenu();
}
//题目跳转
function toQuestion(data){
var nowQuestionNum =$("#nowQuestionNum").text();
var id=$("#ID_"+nowQuestionNum).val();
var QUESTIONCLASS= $("#QUESTIONCLASS_"+id).val();
var TRUEANSWER=$("#TRUEANSWER_"+id).val();
if(QUESTIONCLASS =='questionType_moreChoose'){
var str="";
$("input[name='moreAnswer_"+id+"']:checkbox").each(function(){
if($(this).attr("checked")){
str += $(this).val()+","
}
})
if(str == ''){
if(confirm("该题您还没有选择答案,确定要前往其他题吗?")){
}else{
return;
}
}else{
subMoreChooseAnswer(id, TRUEANSWER);
}
}
$("#currentPage").val(data);
$("#nowQuestionNum").text(data);
showMenu();
}
...部分省略...
</script>
注意:
比如上面出现的抓取name=”“的选择器使用失效的问题。
根据上面的代码提示:发现在ie9 、ie8、 ie7低版本的IE浏览器模式下,均会出现不同程度的jquery失效问题,从一定程度上反应了jquery与浏览器的部分不兼容问题。
基本上在达到ie10,及其以上版本的ie浏览器或ie内核浏览器才会对jquery有较为全面和完整的支持性。
除了ie版本的问题?还有jquery版本问题?网页缓存?代码逻辑错误?也都说不定呢!
具体问题现象,具体分析;
本文不提供具体解决办法;
谨以此文,表明不同版本的ie浏览器对于jquery支持的差异性。以及其他可能影响页面布局效果和功能的相关因素。