Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Przekazywanie parametrów do pliku js
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
nu_moon
Witam,

Czy jest może metoda pozwalająca na przekazanie parametrów do pliku .js ?
Tzn chodzi mi o możliwośc przekazania stringu, w sposób podobny jak GET.

Czyli powiedzmy mamy wywołanie script.js?id=tutajwartoscprzekazywana

Dałbym sobie głowe uciąć ze widziałem coś takiego grzebiąc w starych skryptach pisanych przez inne osoby (teraz sobie nie moge przypomieć gdzie to widziałem) i zastanawiało mnie po co są tam jeszcze jakieś znaczki za nazwą pliku i myśle ze to mogło być cos takiego.


PS. Nie mam możliwości wczytać tego za pomocą parsera php.
kamil4u
Da się, jednak osobiście pamiętam tylko 1 sposób. Poszukaj w szczególności na ang. stronach to na pewno coś znajdziesz smile.gif

Przez DOM dobierasz się do <script>, później do src, a następnie za pomocą wyrażeń regularnych pobierasz interesującą Cię zmienną. Ale na 90% był inny, lepszy sposób - poszukaj.
kalmaceta
brakuje w pytaniu informacji skąd chcesz przekazać, Jeśli w PHP to podawać po prostu co chcesz do pliku czy umieścić w html. Metoda jaką podał kolega powyżej jest już z lekka cudowaniem/.==.
celbarowicz
1)Czy może to być przekazanie za pomocą BUTTONA?
GET często aktywowane jest SUBMITEM.
2)Czy przekierowanie i przekazanie parametrów?
Jak wykonać sposób pierwszy to wiem, a jak drugi na razie nie mam pojęcia.
Kildyt
A czy przypadkiem "te znaczki" za nazwą pliku to nie identyfikator dla przeglądarek?
Wysłać wartość do js-a najłatwiej poprzez wygenerowanie odpowiedniego HTML-a ze script-em, jak już było pisane.
celbarowicz
Widziałem ten znaczek "?", ale problem można opisać dokładniej(być może został opisany wystarczająco).
Kildyt
Skoro już tak bardzo na ten sposób się uparłem to może ten sposób zadziała.
celbarowicz
Może sklecisz jakiś działający przykład? Skrypty JS są zwykle dołączane do innych. Pytanie: skąd string ma być przekazany do JS? Podejrzewam,że z PHP lub HTML do JS. Jeśli z JS do JS to chyba to co podałeś jest OK.
Kildyt
Nie da się bezpośrednio przesłać danych pomiędzy PHP a JS-em ponieważ działają one na zupełnie innych płaszczyznach (PHP na serwerze, JS po stronie klienta). Jedynym zdrowym łącznikiem dla nich jest HTML.
W temacie zostały już podane sposoby w jaki możesz to zrobić.
Jeżeli coś ci nie wyjdzie to wklej kod i jakoś postaramy się ci pomóc.
iwosz
Hmm, też mnie ciekawi ten temat, jednak widzę dużo postów i żadnej konkretnej odpowiedzi worriedsmiley.gif Jedynie przydatny jest link który przesłał Kildyt chociaż nie testowałem tego sposobu więc nie wiem czy działa.

Cytat(kalmaceta)
brakuje w pytaniu informacji skąd chcesz przekazać, Jeśli w PHP to podawać po prostu co chcesz do pliku czy umieścić w html


A jakie to ma znaczenie? JS jest wykonywany przez przeglądarkę po stronie użytkownika, plik.js z parametrem mamy wygenerowany w HTMLu a jak on sie tam znalazł to nas nie powinno interesować winksmiley.jpg

Pytanie jest proste: Jak odczytać wartość parametru w treści pliku.js przekazanego w formie plik.js?nazwa_parametru=wartosc_parametru

Czyli jak ktoś jeszcze nie wie o co chodzi, załóżmy że mamy w plik.js kod:

Kod
var foo = nazwa_parametru; // przypisujemy zmiennej 'foo' wartość 'wartosc_parametru' przekazaną jako parametr 'nazwa_parametru'


Zatem wie ktoś jak to zrobić / czy da się coś takiego zrobić ? smile.gif

Pozdrawiam.
nu_moon
Da się.

Znalazłem to przypadkiem znów (mam taki nawyk zagądania w kod stron równie czesto jak w ich content tongue.gif ).
W oryginale był to loader efektów do scriptaculous.

Upraszczając nieco sprawę i używając jedynie czystego javascript, udało się coś takiego zrobić:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <script type="text/javascript" id="sk1" src="script.js?www.domena.com"></script>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  4. </head>
  5. <body>
  6. </body>
  7. </html>


java script:
  1.  
  2. var zmienna = document.getElementById("sk1").src.split('?').pop().toString();
  3.  



Generalnie po co coś takiego ?
W moim przypadku był to dość stary skrypt typu CMS, napisany 5 lat temu ale czasem jeszcze do prostych stronek go używam. W projekcie był użyty edytor TinyMCE i jest to bardzo fajne narzędzie, ale żeby użytkownik mógł linkować ścieżki względne do obrazków, trzeba jako parametr podać domene.
W sumie teraz widze że mogłem to inaczej rozwiązać, ale przykład jak to można zrobić umieszczam tutaj - tak bardziej w celach edukacyjnych ;-).
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.