0

나는 AJAX를 사용하여 클릭하는 플래그에 따라 언어를 변경해야하는 프로젝트를 개발 중입니다. IE7에서는 정상적으로 작동하지만 IE6에서 실행하면 오류가 발생합니다.IE6과 IE7 사이의 브라우저 호환성

<html> 
    <head> 
    <script type="text/javascript" src="http://www.google.com/jsapi"></script> 
    <script language="javascript"> 
google.load("language", "1"); 

function fnTrans(strTransText,strTransField, strTransFLang, strTransTLang) 
{ 
    google.language.translate(strTransText, strTransFLang, strTransTLang, function(result) { 
     var strcontainer = document.getElementById(strTransField); 
     strcontainer.innerHTML = result.translation ; 
     }); 
} 

function initialize(strToTxtBox, strFromTxtBox) { 
    var x = window.location.toString(); 
    var strLang = x.substring(x.indexOf("=")+1); 
    if((x.indexOf("="))==-1) return; 
    strFLang = strLang.substring(0,2) 
    strTLang = strLang.substring(strLang.indexOf("-")+1); 
    var strText = document.getElementById(strFromTxtBox).innerHTML; 

    if(strFLang != 'en') 
     fnTrans(strText,strFromTxtBox, 'en',strFLang) 

    fnTrans(strText,strToTxtBox, strFLang,strTLang) 
} 

function fnhi() 
{ 
    var label=document.getElementsByTagName("label"); 
    var count=label.length; 
    var x = window.location.toString(); 
    var strLang = x.substring(x.indexOf("=")+1); 
    if((x.indexOf("="))==-1) 
     return; 
    for(var i=0;i<count;i++) 
      { 
     initialize(label[i].id,label[i].id); 
    } 
document.getElementById("curlang").value=strTLang; 
} 

function fnClick(lang) 
{ 
    if(lang=="") return; 
    var curlang=document.getElementById("curlang").value; 
    if(lang==curlang) return; 
    window.location='language.php?strLang=' + curlang+'-'+lang; 
} 

    </script> 
    </head> 
    <body onload="fnhi()"> 
    <input type="hidden" id="curlang" value="en" size="3"> 
    <img src= "langauage.gif" use ="#map"> 
    <map name="Map"> 
     <area shape="rect" alt="Arabic" value="ar" coords="36,6,62,19" href="#" onclick="fnClick(this.value);"> 
     <area shape="rect" alt="Chinese" value="zh" coords="66,6,90,20" href="#" onclick="fnClick(this.value);"> 
     <area shape="rect" alt="German" value="de" coords="95,6,121,21" href="#" onclick="fnClick(this.value);"> 
    </map> 

    </body> 
</html> 
+2

"IE6에서 실행하면 오류가 발생합니다." IE6에서 어떤 오류가 발생합니까? –

+0

@Paul, IE6입니다. 오류가 무엇이든지간에 그것은 유익하지 않습니다 ;-) – ijw

답변

0

무엇이 문제인지 명확하지 않습니다. 그러므로 나는 추측하고있다. 자바 스크립트 브라우저에서 어떤 것을하고 싶다면 에 따라 브라우저를 요청할 수 있습니다.

<html> 
<body> 

<script type="text/javascript"> 
var browser=navigator.appName; 
var b_version=navigator.appVersion; 
var version=parseFloat(b_version); 

document.write("Browser name: "+ browser); 
document.write("<br />"); 
document.write("Browser version: "+ version); 
</script> 

</body> 
</html> 

"if"문을 추가하면 브라우저에 따라 동작을 "사용자 정의"할 수 있습니다. 어쨌든 나는 모든 브라우저에 에 대한 코드를 유지해야하기 때문에이을 사용하도록 조언하지 않습니다. 또한 다른 브라우저와 브라우저 버전을 테스트해야합니다.

가능한 해결책은 Google의 GWT와 같은 크로스 브라우저 인 일부 자바 스크립트 라이브러리를 사용하는 것입니다.

루이스