2012-01-24 4 views
0

У меня функция работает отлично в IE, но не в mozilla.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 в Mozilla, но остальной части предупреждения не отображается.

+1

вас код очень плохо несколькими способами: 1) Вы просачиваться глобальный 'i', 2) Вы можете использовать Eval ненадлежащим образом. Кроме того, рассмотрите возможность использования структуры, такой как jQuery. – ThiefMaster

+0

Игнорировать советы по использованию jQuery у людей, которые не имеют достаточной информации о ситуации, чтобы сделать эту рекомендацию. –

+0

Как использовать eval в моем случае? – chetan

ответ

3

просто использовать arguments вместо showhide.arguments

4
Function.Arguments

является 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

Еще только тестовая печать после этого, я получаю errot как неперехваченное исключение: приглашение [Exception ... "отменено пользователем "nsresult:" 0x80040111 (NS_ERROR_NOT_AVAILABLE) "location:" JS frame :: resource: //gre/components/nsPrompter.js :: openTabPrompt :: строка 468 "data: no] – chetan

Смежные вопросы