2012-04-29 10 views
7

Chcę dołączyć jquery do pliku, jeśli nie jest już dołączony do strony. Jak mogę to zrobić?Dołącz jQuery, jeśli nie jest już dołączony

Napisałem to, ale daje niepożądane wyniki.

+0

pokrewne: http://stackoverflow.com/questions/6787569/best-way-to-avoid-including-stylesheets-external-js-more-than-once-in-a- strona –

Odpowiedz

11

Nie możesz tego zrobić w PHP. Spróbuj tego zamiast

<script type="text/javascript"> 

if(typeof jQuery == 'undefined'){ 
     document.write('<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"></'+'script>'); 
    } 

</script> 
+1

Ten styl przypisania 'onload' ryzykuje nadpisanie. Również wywołanie 'document.write' po wywołaniu zdarzenia' onload' spowoduje wyrzucenie istniejącego dokumentu! – Quentin

+0

Dzięki. Zmodyfikowałem swój kod: – Sethunath

+0

@Sethunath: Ani twój, ani mój kod nie działa. Kiedy wykonuję to na stronie, koniec po wewnętrznej pojawia się na stronie ** '); } ** – Thompson

4

Twój PHP działa na serwerze i wypisuje tekst.

Przeglądarka interpretuje ten tekst jako HTML i JavaScript.

Nie można uruchomić PHP na serwerze, w dokumencie, który już wysłał do przeglądarki, w odpowiedzi na logikę uruchomioną w przeglądarce.

Musisz to zrobić całkowicie w JavaScript lub, bardziej po prostu, uporządkować logikę po stronie serwera, aby śledzić, czy jQuery został dołączony, czy nie.

6

Można spróbować poniżej:

<script>window.jQuery || document.write('<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"><\/script>')</script> 
9
<script type="text/javascript"> 
    if(typeof jQuery == 'undefined'){ 
     var oScriptElem = document.createElement("script"); 
     oScriptElem.type = "text/javascript"; 
     oScriptElem.src = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"; 
     document.head.insertBefore(oScriptElem, document.head.getElementsByTagName("script")[0]) 
    } 
</script> 
+0

Wiele innych odpowiedzi znacznik skryptu w tagu skryptu. Lubię twoją odpowiedź lepiej. Moją jedyną sugestią byłoby nie sprawdzać jQuery typu i po prostu porównać go z niezdefiniowanym. '' if (jQuery == undefined) '' –

+0

Trudne undefined może nie być niezdefiniowane, jeśli undefined został przedefiniowany w jakimś kodzie powyżej. Ale z pewnością rób to, co uważasz za najlepsze. – noob

0

Jeśli chcesz to zrobić w PHP, który moim zdaniem jest lepiej, można to zrobić

  • przed wywołaniem funkcji load() utwórz zmienną taką jak:

    var load_script = 'no';

  • Funkcja load() pobiera opcjonalny parametr, za pomocą którego można przesłać dane do serwera. Użyj go, aby opublikować load_script zmienną utworzoną wcześniej jak tego

    $ ('#') receiver_div obciążenia ('mojastrona.html', { 'load_script': load_script}., ​​Funkcji (HTML) {

    // rzeczy do zrobienia po stronie obciążenia

    })

  • Następnie na stronie ładowanego, złapać zamieszczonych wartość jak ten

    $ load_script = $ _POST ('load_script');

  • Następnie można zrobić if wykluczyć scenariusza, który ma jak tego

if ($ load_script!= "nie") {

echo "<script src="jquery.js"></script>";

}

Powiązane problemy