12. maj 2009 - 10:54
Der er
21 kommentarer og 1 løsning
eval string
når jeg tilføjer noget til en eval string får jeg fejl her virker det: eval(callback_function+'('+text+')'); her virker det ikke: eval(callback_function+'('+text+(callback_var ? ', '+callback_var:'')+')'); hvad gør jeg galt?
Annonceindlæg tema
Prøv således: eval(callback_function+'('+text+(callback_var)? ', '+callback_var : '' +')');
det virker heller ikke.. så går den sidste del med i statementen...
eval(callback_function+'('+self.xmlhttp.responseText+ /* (callback_var ? ', '+callback_var:'')+ */ ')'); callback_var kan være et objekt, men det burde jo ikke have nogen betydning for hvordan linjen skal skrives... så snart jeg unescaper meldes fejl
ok prøv så med: eval(callback_function+'('+text+(callback_var)? (', '+callback_var) : ('') +')');
nu er statementen jo adskilt af paranteser..
har du et konkret svar eller gætter du bare?
ellers gør således: if(callback_var) { eval(callback_function+'('+text+callback_var+')'); } else { eval(callback_function+'('+text+')'); }
ja, men jeg kunne stadig godt tænke mig at vide hvordan man får det andet til at virke
ja det var fordi du havde en parantes udenom hele funktion og den første er jo bool og resten er tekst: bool ? text : text Følgende er gyldige: bool ? text : text bool ? (text : text) bool ? (text) : (text) (bool) ? (text) : (text) Følgende er ikke gyldig: (bool ? text : text)
svare til if(bool) return text; else return text;
synes ikke rigtig der er noget af det som virker.. en parantes omkring det hele burde ikke have indflydelse på selve statementen.. hmmm
jeg ved ikke lige hvorfor du skriver callback_var 2 gang i den sætning. Altså den første skal jo være en bool og den anden er jo en tekst.
Det kan være dit eval udtryk der ikke er gyldigt og ikke selve if sætningen. Hvad for du hvis du bruger document.write() i stedet for eval?
jeg tror det har noget at gøre med det element objekt jeg sender med.. callback_var er et TD element.. men man burde vel bare kunne sende objektet med som det er?
man skal måske i stedet lave objektet om til en string før det kan sendes med på den måde?
eval('callback_function(' <= Denne skal med i string hvis det er en func +text+ callback_var? <= denne skal være af typen bool ', '+callback_var <= Denne skal være af typen text : '' +')');
eval('callback_function('+text+callback_var? ', '+callback_var : '' +')');
hvis din sidste callback_var skal være et objekt er der noget galt i dit udtryk, da + opratoren bruges til at ligge strings sammen og kan ikke bruges på denne måde på et objekt
Jeg tror muligvis det er dette her du vil forsøge: eval('callback_function(' + callback_var? 'text, callback_var' : 'text' +')');
Vi tilbyder markedets bedste kurser inden for webudvikling