我有javascript,它位于iframe中。当我检查iframe中的单选按钮时,在父窗口上更改值。它在firefox上工作得很完美,但在IE上却没有...有人可以帮我解决这个问题吗?
<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 :(得分: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>
或者,您可以使用Javascript自动添加事件侦听器。
这一行:
window.parent.document.getElementById("images").getElementsByTagName("img")[0].src = "images/lang/" + qwer + ".png";
是不对的,getElementById已经返回了你需要的图像,所以getElementById(“images”)。src = ...就可以了。