티스토리 뷰
1월에 작성했던 메모....
===
Cross-Browser 문제를 절실히 실감하고 있당;;
Firefox에선 제대로 돌아가는 것이 Explorer에선 잘 되지 않는다.
코드는 아래와 같다.
function addOpt() {
var sel = document.getElementById("sel"); //select box
var opt = document.createElement("input");
opt.text = "optText";
opt.value = "optValue";
sel.appendChild(opt);
}
Firefox에선 잘 돌아가지만 익스플로러에선 opt.text가 적용되지 않는다.
이를 해결하기 위해선,..
1) innerHTML을 사용한다.
opt.text = "optText"; 대신 opt.innerHTML = "optText";
내키진 않지만 innerHTML을 쓸 경우 제일 깔끔하게 구현할 수 있다.
Firefox에서도 이상없이 작동된다.
2) textNode를 추가한다.
opt.text = "optText"; 대신 opt.appendChild(document.createTextNode("optText"));
opt 아래 textNode를 추가하는 방식이다.
문장이 좀 길어지긴 한다. 역시 Firefox에서도 이상없이 작동된다.
3) options.add를 사용한다.
sel.appendChild(opt) 대신 sel.options.add(opt, 0);
select box의 객체를 사용하여 추가하는 방식이다.
위 코드대로라면 나중에 추가되는 element가 0번 index부터 들어가기 때문에,
sel.options.add(opt, c.options.length + 1); 로 해주는 방법도 좋겠다.
역시 Firefox에서도 잘 돌아간다.
위 테스트는 Firefox 2.0과 Explorer 7에서 이루어졌다.
Explorer 7은 W3C 표준을 잘 지켰다고 하는데,..
음~ 언제쯤 브라우저 간 호환을 걱정하지 않아도 될까~~
===
Cross-Browser 문제를 절실히 실감하고 있당;;
Firefox에선 제대로 돌아가는 것이 Explorer에선 잘 되지 않는다.
코드는 아래와 같다.
function addOpt() {
var sel = document.getElementById("sel"); //select box
var opt = document.createElement("input");
opt.text = "optText";
opt.value = "optValue";
sel.appendChild(opt);
}
Firefox에선 잘 돌아가지만 익스플로러에선 opt.text가 적용되지 않는다.
이를 해결하기 위해선,..
1) innerHTML을 사용한다.
opt.text = "optText"; 대신 opt.innerHTML = "optText";
내키진 않지만 innerHTML을 쓸 경우 제일 깔끔하게 구현할 수 있다.
Firefox에서도 이상없이 작동된다.
2) textNode를 추가한다.
opt.text = "optText"; 대신 opt.appendChild(document.createTextNode("optText"));
opt 아래 textNode를 추가하는 방식이다.
문장이 좀 길어지긴 한다. 역시 Firefox에서도 이상없이 작동된다.
3) options.add를 사용한다.
sel.appendChild(opt) 대신 sel.options.add(opt, 0);
select box의 객체를 사용하여 추가하는 방식이다.
위 코드대로라면 나중에 추가되는 element가 0번 index부터 들어가기 때문에,
sel.options.add(opt, c.options.length + 1); 로 해주는 방법도 좋겠다.
역시 Firefox에서도 잘 돌아간다.
위 테스트는 Firefox 2.0과 Explorer 7에서 이루어졌다.
Explorer 7은 W3C 표준을 잘 지켰다고 하는데,..
음~ 언제쯤 브라우저 간 호환을 걱정하지 않아도 될까~~
반응형
댓글
공지사항