2012-01-24 8 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); 
} 

は、私は、Mozillaが、表示されません、警告の残りの部分でtestのアラートを取得します。

+1

あなたのコードを使用して、複数の方法でかなり悪いです:1)あなたは2)あなたは、不適切な方法でevalを使用し、グローバル 'i'を漏らします。それに加えて、jQueryのようなフレームワークの使用を検討してください。 – ThiefMaster

+0

この勧告を行うために状況に関する十分な情報を持っていない人々からjQueryを使用するためのアドバイスは無視してください。 –

+0

私のケースでevalを使用するには? – chetan

答えて

3

単にarguments代わりにshowhide.arguments

4

Function.Arguments単に独自にargumentsを使用し、depreciatedでの使用。

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

まだ試してみてください。 JS frame :: resource://gre/components/nsPrompter.js :: openTabPrompt :: line 468 "data:no"ユーザが "nsresult:" 0x80040111(NS_ERROR_NOT_AVAILABLE) – chetan

関連する問題