2012-01-24 5 views
0

저는 IE에서 완벽하게 작동하지만 모질라에서는 작동하지 않습니다.functionname.arguments가 Mozilla에서 작동하지 않습니다.

function showhide() 
{ 
alert("test"); 
var args=showhide.arguments; 
alert("1"+args); 
for (i=0; i<(args.length); i=i+2) 
{ 
    alert("2"+args); 
    eval(args[i]+".style.display='"+args[i+1]+"'"); 
} 
alert("3"+args); 
} 

나는 모질라하지만 표시되지 않습니다 경고의 나머지 test 경고 얻을.

+1

당신의 코드를 사용하여 여러 가지 방법으로 아주 나쁜 : 1) 2) 당신은 부적절한 방법으로 평가 사용, 글로벌'i' 누출. 그 외에도 jQuery와 같은 프레임 워크 사용을 고려하십시오. – ThiefMaster

+0

해당 권장 사항을 작성하는 데 필요한 정보가 충분하지 않은 사람들로부터 jQuery를 사용하기위한 조언을 무시하십시오. –

+0

내 경우에 eval을 사용하는 방법은 무엇입니까? – chetan

답변

3

단순히 대신 showhide.arguments

4

Function.Argumentsarguments를 사용하는 것은 depreciated은 단순히 그 자체 arguments을 사용하는 것입니다;

var args = arguments; 

편집

무엇을 당신의 행함에 대한 대안;

function showHide(elementStyles) { 
    for (id in elementStyles) { 
     alert(id + "/new style=" + elementStyles[id]); 
     document.getElementById(id).style.display = elementStyles[id]; 
    } 
} 

showHide({ 
    myElementId1: "block", 
    myElementId2: "none", 
    myElementId3: "inline" 
}); 

또는 arguments

function showHide() { 
    for (var i = 0; i < arguments.length; i += 2) { 
     alert(arguments[i] + "/" + arguments[i + 1]); 
     ... something other than eval here 
    } 
} 

showHide("myElementId1", "block", "myElementId2", "none"); 
+0

여전히 잡히지 않은 예외처럼 error를 얻는다 : {Exception ... "prompt aborted 사용자 : "nsresult :"0x80040111 (NS_ERROR_NOT_AVAILABLE) "위치 :"JS 프레임 :: 리소스 : //gre/components/nsPrompter.js :: openTabPrompt :: line 468 "data : no" – chetan

관련 문제