日期:2014-05-17  浏览次数:20867 次

JS浏览器兼容问题帮助改一下,让其能够兼容IE和火狐
selectGCByKey=function() {
var ComboxDiv=document.getElementById("bsGCComboxDiv");
if (ComboxDiv == null || ComboxDiv.style.visibility=="hidden") return;

var inputObjID=ComboxDiv.childNodes[0].id.substring(0,ComboxDiv.childNodes[0].id.indexOf("TABLE"));
var inputObj=document.getElementById(inputObjID);
var hiddenInputObj=document.getElementById(inputObjID+"_ComboxSelect");

var gcList = ComboxDiv.childNodes[0].childNodes[0].childNodes;
var lastSelCell=null;
var lastSelRow=null;
var lastIdx=0;

var targetSelCell=null;
var targetSelRow=null;
var targetIdx=0;

for (var i=0;i<gcList.length;i++) {
if (gcList[i].childNodes[0].style.backgroundColor=="highlight") {
lastSelRow=gcList[i];
lastSelCell=gcList[i].childNodes[0];
lastIdx=i;
break;
}
}

if (window.event.keyCode==13) {
if (lastSelCell == null){
lastSelCell=gcList[0].childNodes[0];
}

hiddenInputObj.value=lastSelCell.getAttribute("gcid");
inputObj.value=lastSelCell.innerText;

hideGCCombox();

var bindParam=inputObj.getAttribute("bindParam");

var bindParamArr=bindParam.split("|");

if (bindParamArr.length>2 && bindParamArr[2]!="") {
var bindEvent=bindParamArr[2];
if (bindEvent!=null) getElementById(bindEvent);
}

window.event.keyCode=0;
window.event.cancelBubble=true;
}
return;
}
------最佳解决方案--------------------
childNodes
这个IE跟FF下似乎会有兼容。
话说你就不能把代码贴的完整些么。看不到效果。也没说哪里不兼容。。。
------其他解决方案--------------------
这代码太长啊,我晕,700行,以前他们写的,那人辞职了,让我来改,我对兼容性不是很懂啊,就是想让你们帮我找找里面不兼容的地方。。。。。。我觉得貌似是childnodes和window。event的问题= =
------其他解决方案--------------------
你不说我还真没看到有window.event,应该是window.event的问题

document.onkeydown = function(e){
var e = window.event ? window.event : e;
if(e.keyCode == 13){
//   这里执行代码;
}
}

试试
------其他解决方案--------------------
效果不是很大,哎,这种问题真让人蛋疼啊,我给你地址,http://www.jsj.com.cn/HotelBook/Hindex.aspx 这里的目标城市在火狐下出错,呵呵
------其他解决方案--------------------
http://www.jsj.com.cn/HotelBook/Hindex.aspx   酒店预订
------其他解决方案--------------------
有了FF。你用FIREBUG看嘛。很明显是fChooseCity(this);这个有问题。传过去的THIS就不对。
或者说对THIS的处理不对。
------其他解决方案--------------------
你加下我Q81246566,我找不到这个方法在哪,你给我说了我把分都给你
------其他解决方案--------------------
你自己用FIREBUG单步调试下嘛。都已经FF下测试了- - 
帮你看的话没那么多时间哪哥们。