2010-07-27 7 views
0

iframe에 javascript가 있습니다. Iframe의 라디오 버튼을 확인하면 상위 창에서 값을 변경합니다. 파이어 폭스에서 완벽하게 작동하지만 IE에서는 그렇지 않습니다. 누군가이 문제를 해결할 수 있습니까?iframe의 라디오 버튼 확인

<script type="text/javascript"> 
function getCheckedValue(radioObj) { 
    if(!radioObj) 
     return ""; 
    var radioLength = radioObj.length; 
    if(radioLength == undefined) 
     if(radioObj.checked) 
      return radioObj.value; 
     else 
      return ""; 
    for(var i = 0; i < radioLength; i++) { 
     if(radioObj[i].checked) { 
      return radioObj[i].value; 
     } 
    } 
    return ""; 
} 

function asd(){ 
var qwer = getCheckedValue(document.forms['uas'].elements['icon']); 
window.parent.document.forms['register'].lang.value = qwer; 
window.parent.document.getElementById("images").getElementsByTagName("img")[0].src = "images/lang/" + qwer + ".png"; 

} 
</script> 

<form name="uas" method="GET" action="" onchange="asd();"> 
<label id="1"><input type="radio" name="icon" value="1">One</label><br><label id="2"><input type="radio" name="icon" value="2">Two ... 
+0

코드와 관련된 명백한 문제는 볼 수 없습니다. IE에서 오류가 발생합니까? –

+0

아니, 그냥 작동하지 않습니다. – simple

답변

0

코드의 문제는 양식 요소에 첨부 된 onchange 이벤트입니다. IE는이를 지원하지 않습니다. 대신, 라디오 버튼의 각각의 onchange 이벤트를 사용해야합니다 :

<label id="1"><input type="radio" name="icon" value="1" onchange="asd();">One</label> 
<label id="2"><input type="radio" name="icon" value="2" onchange="asd();">Two</label> 

또는, 자동으로 이벤트 리스너를 추가하기 위해 자바 스크립트를 사용할 수 있습니다. 또한이 라인

:.

window.parent.document.getElementById("images").getElementsByTagName("img")[0].src = "images/lang/" + qwer + ".png"; 

은에서 getElementById는 이미 트릭을 할 것입니다 당신이 그렇게에서 getElementById를 필요로하는 이미지 ("이미지") SRC = ...을 반환 옳지 않다.

+0

나는 change .. "asd();"> to ... onclick = "asd();"> 아마도 최선의 해결책은 아니지만 작동하는 것일 수 있습니다. :) – simple