2016-07-24 7 views
-2
function run(conditions) { 
/* --- code --- */ 
var pages_counter = parseInt(localStorage.getItem('onload_counter')); 
var seconds_counter = parseInt(JSON.parse(localStorage.getItem("waiting_for_modal"))[0])+1; 
/* --- code --- */ 
var vared = eval(conditions.test.join(' ')) ? true:false; 
if(vared){ 
jQuery('#myid').fadeOut(500); 
} 
} 

var conditions = { 
/* --- code --- */ 
"test": ["(pages_counter > 1 && seconds_counter > 10)||(seconds_counter > 40 && pages_counter === 1)"] 
}; 
run(conditions); 

Ist eval() in diesem Fall gefährlich? Oder gibt es einen besseren Weg, dies zu tun?Wie führt man diesen Javascript-Code ohne eval() aus?

+0

Sie die Zahlen passieren könnte, IEG, '1', '10', 40'', '1' statt auch die Variablennamen – guest271314

Antwort

2

Warum nicht eine Funktion dafür verwenden?

var conditions = {   
    test: function (pages_counter, seconds_counter) { 
     return (pages_counter > 1 && seconds_counter > 10) || (seconds_counter > 40 && pages_counter === 1); 
    } 
}; 

// test with 
var vared = conditions.test(pages_counter, seconds_counter); 
+0

@Nina_Scholz vorbei, Reference: onload_counter ist nicht definiert – leon

+0

so eine haben schau wo 'onload_counter' definiert oder benutzt wird. Ich kann nicht ohne mehr Wissen über den Rest Ihres Codes helfen. –

+0

@Nina_Scholz, http://jsfiddle.net/lev19888/54umgsoL/ – leon

Verwandte Themen