Dynamiczne ładowanie JS Drukuj
Ocena użytkowników: / 0
SłabyŚwietny 
Wpisany przez Patryk yarpo Jar   
poniedziałek, 21 września 2009 21:23

Jeśli kiedyś myślałeś o tym, jakby tu załadować jakiś skrypt „po drodze”, zamiast ładować go od razu, to na pewno ta porada ci się przyda.
Pokażę, w jaki sposób załadować skrypt JS znajdujący się w osobnym pliku dynamicznie, to znaczy – w trakcie surfowania po stronie, bez jej przeładowania. Niech przemówi kod:

 <script type="text/javascript">
// <!-- <![CDATA[ 
function zaladuj_skrypt(plik) {
    var nowySkrypt = document.createElement("script");
    nowySkrypt.setAttribute("type", "text/javascript");
    nowySkrypt.setAttribute("src", plik + ".js");
 
    document.getElementsByTagName("head")[0].appendChild(nowySkrypt);
}
// --> ]]></script>

Co więc po kolei tu robię? Stworzyłem małą funkcję void zaladuj_skrypt(string plik), która pozwala na dynamiczne dodawanie skryptów. Wywołuje się ją w taki sposób:

<p>
    <a href="javascript:void(zaladuj_skrypt('jeden'))">Jeden</a> ::
    <a href="javascript:void(zaladuj_skrypt('dwa'))">Dwa</a>
</p>


Funkcja ta przyjmuje jako parametr nazwę skryptu JS [bez rozszerzenie, to zostaje automatycznie dodane w funkcji].

Warto byłoby także zapoznać się z:

  • developer.mozilla.org/pl/docs/DOM:element.appendChild
  • developer.mozilla.org/pl/docs/DOM:document.createElement
  • w3schools.com/dom/met_document_createelement.asp
  • w3schools.com/dom/met_element_setattribute.asp
  • developer.mozilla.org/pl/docs/DOM:element.setAttribute