Page 1 of 1

eval 이 파이어폭스에서 안넘어가는 거 같은

Posted: 2006 01 17 13:37 01
by rain
IE에서는 이상없이 잘 되는데 firefox에서는 전혀 스크립트가 먹질 않습니다.. 고수님들의 조언을 구합니다.

요금제를 선택하면 그 바로 밑에 div로 구성된 것을 호출하는 방식과 건당결제시 작품을 선택하면 자동으로 금액이 적용되는 부분 둘다 파이어폭스에서는 적용이 안되고 있습니다...

-------------------------------------------------------------------------------------------------------------------------


<script language="JavaScript">
<!--

function window_resize(w,h) {
window.resizeTo(w,h);
}

var x = 578;
var y = 440;

window_resize(x,y);

function show_charge(j,k,h){
eval("self.charge_list_" + j).style.display = "";
eval("self.charge_list_" + k).style.display = "none";

tform.fix_type[0].checked = false;
tform.fix_type[1].checked = false;
tform.fix_type[2].checked = false;

eval("self.charge_list_3").style.display = "";

var dd = "0";
var hapx = 30 * dd;
var hh = y + h
if(j==2) { hh = hh + hapx; }
window_resize(x,hh);
}

eval 이 파이어폭스에서 안넘어가는 거 같은데 어떻게 변경을 해야할 지 알고 싶습니다

Re: eval 이 파이어폭스에서 안넘어가는

Posted: 2006 01 17 17:27 39
by kiryu
rain wrote: function show_charge(j,k,h){
eval("self.charge_list_" + j).style.display = "";
eval("self.charge_list_" + k).style.display = "none";

tform.fix_type[0].checked = false;
tform.fix_type[1].checked = false;
tform.fix_type[2].checked = false;

eval("self.charge_list_3").style.display = "";

var dd = "0";
var hapx = 30 * dd;
var hh = y + h
if(j==2) { hh = hh + hapx; }
window_resize(x,hh);
}

eval 이 파이어폭스에서 안넘어가는 거 같은데 어떻게 변경을 해야할 지 알고 싶습니다
'charge_list_숫자' 이 놈이 id입니까 name입니까?
id 라면 document.getElementById('charge_list_' + i) 로 접근하시면 되겠고, name이라면 getElementsByName을 이용하시면 되겠네요.

Posted: 2006 01 18 13:13 45
by 빛알갱이
document.getElementById("foo")나 document.getElementById("bar")라고 해야하지만, 하도 틀린 곳이 많아서 document.all.foo나 그냥 foo 혹은 bar라고 해도 firefox가 특별한 경우에 한정해서 봐 주기 시작하니까 생긴 '부정적' 효과로군요. 그렇다면, 왜 foo1.style 어쩌고는 되는데, eval(foo + i).style (i가 1일 때)은 안 되느냐는 질문이 나온 거로군요. 본래 document.getElementById나 document.getElementByName을 써야 한다는 것을 몰랐다면 생길 수 있는 의문입니다.

rain님, 이번을 계기로 해서 원칙에 맞는 사용법을 배우실 수 있었다면 좋겠습니다. 그리고, firefox는 이런 경우에 도움을 줄 수 있는 여러 가지 도구를 제공합니다. 예를 들어, 아무런 확장을 설치하지 않아도 기본으로 들어 있는 Tools 메뉴에 있는 Javascript console만 들여다 보셨더라도 무엇이 문제인지 금새 아셨을 것입니다. 그 밖에 선택 설치 사항인 DOM Inspector, 확장으로 설치할 수 있는 Javascript debugger 등을 활용하시면 많은 문제를 해결하실 수 있습니다. 또, Developer extension인지 하는 것도 좋고요.