Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czy da sie z zawartosci stringa wywolac funkcje ?
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
klaudio
Nie wiedzialem jak dokladnie sprecyzowac temat ale chodzi mi o takie cos mam sobie string:

var str = "xxx();"

i teraz chce ta zmienna str przerobic tak aby mi wywolala funkcje xxx(); czyli poprostu chce z niej zrobic wyrazenie javascript.
Czy da sie to zrobic czy jest to nie do wykonania?!

funktion xxx(){
alert("dziala");
}

Z gory dziekuje za pomoc.
Pozdrawiam smile.gif
nospor
setTimeout()
klaudio
Cytat(nospor @ 20.06.2012, 17:30:03 ) *
setTimeout()


a na co mi setTimeout() ? Ja nie chce uruchamiac funkcji po uplawie czasu.
nospor
...
brak słów.... nie dość ze pyta o podstawy to nie przyjmuje do wiadomosci prostej odpowiedzi....

Ustaw sobie za czas 0 i wówczas ci się odpali od razu. Wszystko trzeba podawać na tacy? Nie można chwilkę samemu pomyśleć?

Możesz też użyć eval jeśli czas=0 to dla ciebie za dużo czekania.
kamil4u
Eval is evil. Fakt tak najprościej, ale moim zdaniem lepiej będzie:
[JAVASCRIPT] pobierz, plaintext
  1. var test = "xxx();";
  2. function xxx(){
  3. alert("test");
  4. }
  5.  
  6. test = test.substr(0,test.length-3);
  7.  
  8. window[test]();
[JAVASCRIPT] pobierz, plaintext


Oczywiście dojdzie problem z funkcjami z parametrem i na dodatek wszystko to wymaga zawsze zakończenia ();. Dlatego jeżeli zdarzyć się może, że będzie coś innego w string-u( inne zakończenie ) lepiej zastosuj się do rady ~nospor i użyj eval.
klaudio
OK dziekuje nospor DZIALA smile.gif

Ja znam setTimeout() tylko czesniej uzywam jej w inny sposob i niepomyslalem ze taka opcja tez istnieje.

Jeszcze raz dzieki i POZDRAWIAM.

Cytat(kamil4u @ 20.06.2012, 18:06:25 ) *
Eval is evil. Fakt tak najprościej, ale moim zdaniem lepiej będzie:
[JAVASCRIPT] pobierz, plaintext
  1. var test = "xxx();";
  2. function xxx(){
  3. alert("test");
  4. }
  5.  
  6. test = test.substr(0,test.length-3);
  7.  
  8. window[test]();
[JAVASCRIPT] pobierz, plaintext


Oczywiście dojdzie problem z funkcjami z parametrem i na dodatek wszystko to wymaga zawsze zakończenia ();. Dlatego jeżeli zdarzyć się może, że będzie coś innego w string-u( inne zakończenie ) lepiej zastosuj się do rady ~nospor i użyj eval.


Dziekuje tez ciekawe rozwiazanie ale w moim wypadku eval bedzie najlepsze:)
Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.