Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Czy da sie z zawartosci stringa wywolac funkcje ?
klaudio
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 19.01.2012

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




setTimeout()


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
klaudio
post
Post #3





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 19.01.2012

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 20.06.2012, 17:30:03 ) *
setTimeout()


a na co mi setTimeout() ? Ja nie chce uruchamiac funkcji po uplawie czasu.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




...
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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kamil4u
post
Post #5





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
klaudio
post
Post #6





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 19.01.2012

Ostrzeżenie: (0%)
-----


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

Ten post edytował klaudio 20.06.2012, 17:11:43
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 11:11