-
document.getElementById 와 explorer 9javascript 2011. 9. 17. 20:14explorer 6, 7에선 다음 javascript가 정상동작한다.
<html><script type="text/javascript">function startFunction(){new ajax.xhr.Request("loadMemberAjax.do", "", getMemberIdCallback, "POST");}function getMemberIdCallback(req){if (req.readyState == 4) {if (req.status == 200) {alert(req.responseText);var result = eval(req.responseText);var selectObj = document.getElementById("member_id");for (var i = 0 ; i < result.length ; i++) {var member_id = result[i].member_id;var email = result[i].email;var address = result[i].address;var emailAddress = email+"@"+address;selectObj[i] = new Option(member_id, emailAddress);}}}}
</script><body><select name="member_id" class="input_text" style="width:250px; height:130px;" multiple></select>
</body></html>
name만 지정했는데 document.getElementById 로 값을 갖고오고 있다.이것을 explorer 9에서 실행하고 alert(selectObj) 을 찍어보면 null값이 튀어나온다.다음과 같이 id를 등록하고 가져와야한다.
<html><script type="text/javascript">function startFunction(){new ajax.xhr.Request("loadMemberAjax.do", "", getMemberIdCallback, "POST");}function getMemberIdCallback(req){if (req.readyState == 4) {if (req.status == 200) {alert(req.responseText);var result = eval(req.responseText);var selectObj = document.getElementById("member_id");for (var i = 0 ; i < result.length ; i++) {var member_id = result[i].member_id;var email = result[i].email;var address = result[i].address;var emailAddress = email+"@"+address;selectObj[i] = new Option(member_id, emailAddress);}}}}
</script><body><select id="member_id" class="input_text" style="width:250px; height:130px;" multiple></select>
</body></html>
메소드이름을 보면 getElementById 이므로 id가 있어야 하는게 당연한것 같기도 하고..explorer 6,7는 그냥 돌다 됐었는데.. explorer 9 들어와서 좀 엄격하게 체크하도록 바뀌었다.
explorer 8 은 모르겠다.
당연히 explorer 9 쓰는 중인데
예전 버전 explorer 에서 작업한 것을 explorer 9 에서 보다가
이거 잡느냐고 때문에 시간낭비 ㅠ.ㅠ
흑흑 할거 많은데...