2010-06-14 7 views
-1
function FM_log(level, text) { 

    // caso não seja log total escolhe o que loga 
    var log = false; 
    switch (level) { 
     case "addtoprio()":log = true; 
     case "alternaTropas()":log = false; 
     case "sendtroops()":log = false; 
     defalt: log = false; 
    } 

    if ((logTotal == false) && (log == true)) 
     GM_log(horaAtual() + " - "+level+", "+text); 
    else if (logTotal == true) 
     GM_log(horaAtual() + " - "+level+", "+text);  
} 

comment faire ce commutateur est une façon dont cela fonctionne?javascript - le commutateur ne fonctionne pas

Répondre

8

break déclarations pour votre commutateur, et l'orthographe correcte de "défaut" devrait vous aider sur votre chemin :)

function FM_log(level, text) 
{ 
    // caso não seja log total escolhe o que loga 
    var log = false; 
    switch (level) 
    { 
     case "addtoprio()": 
     log = true; 
     break; 
     case "alternaTropas()": 
     log = false; 
     break; 
     case "sendtroops()": 
     log = false; 
     break; 
     default: 
     log = false; 
     break; 
    } 

    if ((logTotal == false) && (log == true)) 
     GM_log(horaAtual() + " - "+level+", "+text); 
    else if (logTotal == true) 
     GM_log(horaAtual() + " - "+level+", "+text);  
} 
2

Vous devez ajouter une instruction de rupture après chaque observation et utiliser la valeur par défaut non defalt.

4

Deux problèmes:

  • Il vous manque le mot-clé break après chaque clause case. L'orthographe pour le default était erronée.

.

switch (level) { 
     case "addtoprio()":log = true; break; 
     case "alternaTropas()":log = false; break; 
     case "sendtroops()":log = false; break; 
     default: log = false; break; 
    } 

More On Switch

+0

même ici: par défaut, pas de defalt. – Aif

+0

@Aif: Yup, son orthographe n'était pas correcte. – Sarfraz

2

Modifier à ceci:

function FM_log(level, text) { 

    // caso não seja log total escolhe o que loga 
    var log = false; 
    switch (level) { 
     case "addtoprio()":log = true; break; 
     case "alternaTropas()":log = false; break; 
     case "sendtroops()":log = false; break; 
     defalt: log = false; break; 
    } 

    if ((logTotal == false) && (log == true)) 
     GM_log(horaAtual() + " - "+level+", "+text); 
    else if (logTotal == true) 
     GM_log(horaAtual() + " - "+level+", "+text);  
} 
0

J'ai eu une situation similaire où l'ajout d'une déclaration de rupture n'a pas corrigé le pr oblem. J'ai finalement corrigé le problème en m'assurant que j'ai passé un type de chaîne dans l'instruction switch. Vous pouvez le faire dans votre cas par var newStr = level + "";. Le + "" s'assurera que c'est un type de chaîne. Ensuite, passez newStr dans votre instruction de commutateur.