Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [FF] Problem z podmianą źródła kodu JS, Firefox jakoś dziwnie radzi sobie z kodem JS generowanym przez .php
m.mix
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 21.11.2007

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


Witam,
mam pewien problem z podmianą źródła kodu skryptu - żeby było jaśniej podam przykład:
plik test.php - jakiaś tam sobie stronka:

  1. <script id=skrypt_java></script>
  2. <script id=skrypt_pom>
  3. function GenerujLink() {
  4. var dane=document.getElementById('pole').value;
  5. document.getElementById('skrypt_java').src='./skrypt.php?zmienna='+dane;
  6. }
  7. </script>
  8. <input type=text id=pole>
  9. <input type=button value=Wcisnij onclick="GenerujLink()">
  10. </body>
  11. </html>


i drugi plik - który ma za zadanie wygenerować kod JS:

Kod
<?php
print("alert('Wpisales: ".$_GET[zmienna]."');");
?>


No i wszystko działa pięknie, ale tylko raz (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) tzn po naciśnięciu przycisku piękny alercik wyskakuje, ale juz po naciśnięciu drugi raz przeglądarka nie interpretuje kodu. O dziwo, w IE wszystko działa tak jak oczekuję, czyli za każdym razem na nowo generowany jest kod, przeglądarka go interpretuje i wyświetla alert. I teraz moje pytanie - jak zmusić FF żeby wykonał kod skryptu, który został podmieniony??

Będę wdzięczny za szybką odpowiedź (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bregovic
post
Post #2





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


Trochę grzebania mówi mi że powinieneś zerknąć na jQuery, nie skompresowane, linia 2660. Dla każdego skryptu który ściągasz, tworzą nowy element script, dodają go do head (z odpowiednim src) i usuwają gdy się załaduje.
Dla potomnych:
  1. <?php
  2. var head = document.getElementsByTagName("head")[0];
  3. var script = document.createElement("script");
  4. script.src = s.url;
  5. if (s.scriptCharset)
  6.    script.charset = s.scriptCharset;
  7.  
  8. // Handle Script loading
  9. if ( !jsonp ) {
  10.    var done = false;
  11.  
  12.    // Attach handlers for all browsers
  13.    script.onload = script.onreadystatechange = function(){
  14.        if ( !done && (!this.readyState ||
  15.                this.readyState == "loaded" || this.readyState == "complete") ) {
  16.            done = true;
  17.            success();
  18.            complete();
  19.            head.removeChild( script );
  20.        }
  21.    };
  22. }
  23.  
  24. head.appendChild(script);
  25. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 25.12.2025 - 11:17