ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • document.getElementById 와 explorer 9
    javascript 2011. 9. 17. 20:14
    explorer 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 에서 보다가
    이거 잡느냐고 때문에 시간낭비 ㅠ.ㅠ
    흑흑 할거 많은데... 
Designed by Tistory.