자바스크립트 document.getElementById 크롬에서 안돼요!!
View 13,393 | 작성일2013.12.04 20:32
관련링크
본문
일부 웹에서 나오는 소스를 가져다 쓰게 되면 getElementById 가 익스플로러에서는 되는데 크롬에서는 안되는 경우가 있습니다.
저같은 경우 그누보드에서 스킨을 갖다 쓰다가 이 문제를 알았는데요..
이게 익스플로러에서는 왜 되는데 크롬에서 안되냔 말이죠... 크롬이 뭘 잘못했나요?
사실 크롬이 잘못한게 아니라 익스가 잘못한겁니다.
이게 뭔소린고 하니...
일부 웹 개발자들은 getElementById 를 쓰려는 select 컨트롤이나 check 컨트롤을 이런식으로 정의합니다.
<select name='아이디'>
<option value='값2'>스트링1
<option value='값2'>스트링2
</select>
자 여기서 클릭 이벤트로 가면 select 컨트롤의 값을 얻어와야 겠죠?
그럼 이렇게 쓸겁니다.
var myvalue = document.getElementById('아이디').value;
그런데 이게 익스에서는 되고 크롬이나 사파리에서는 안됩니다.
이건 되는게 맞을까요? 안되는게 맞을까요?
눈치 채셨다면 안되는게 맞습니다.
함수명을 보세요 getElementById 입니다.
ID! ID! ID! ID!
select 에 name 이 아니라
<select id='아이디'>
이렇게 줘야 되는겁니다.
근데 이 멍청한 MS는 이상한 센스를 발휘해서 id 가 없으면 name 에서 찾아쓰도록 했어요.
문제가 뭐냐고요?
대부분의 웹 개발자들에게 오해를 줘서 웹 개발자들이 잘 모르고 그냥 name 을 써버려요.
웹표준은 날라가는 겁니다.
누가 id 에서 없으면 name에서 찾아쓸거라고 예상합니까? 정말 이상한 센스 발휘하시네요;;
문서가 많지않아 정리해둡니다.... 여러분들도 까먹지 마세요~