Pytanie Jak załadować jeden plik JavaScript z innego?


W jaki sposób ładujesz jeden plik JavaScript z innego pliku JavaScript, takiego jak CSS? W CSS używamy zapisu @import url("mycss.css");.

Czy jest jakiś sposób, aby to zrobić w JavaScript?


20
2018-05-05 04:59


pochodzenie


Możliwy duplikat Dołącz plik JavaScript do innego pliku JavaScript? - Vadzim


Odpowiedzi:


Tak. Jeśli chcesz w czystym JavaScript, musisz utworzyć dynamicznie script tag i dołącz go do dokumentu.

Tak. Jeśli korzystasz z biblioteki jQuery, możesz użyć $.getScript metoda.

$.getScript("another_script.js");

28
2018-05-05 05:03





W JavaScript nie ma funkcji @ import-ish, ale możesz po prostu dołączyć skrypt do <head> Tag taki jak poniżej:

var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = '/path/to/js/file';
document.getElementsByTagName('head')[0].appendChild(newScript);

Lub, jak wspomniał Edgar tuż przede mną, możesz użyć jQuery.


39
2018-05-05 05:05



Czy to ładuje plik i inicjuje całą spisaną zawartość? - Raja Anbazhagan
ponieważ nie mogę się doczekać napisania tego kodu, aby załadować jQuery - Raja Anbazhagan
@RajaAnbazhagan tak to zainicjuje zawartość pliku, faktycznie użyłem go do załadowania jQuery, więc wiem, że działa. - musicinmyhead


Tylko dlatego, że nikt o tym nie wspomniał, jest inna opcja, która nie wymaga żadnych wymyślnych bibliotek ani skomplikowanego kodowania, document.write. Zasadniczo wyglądałoby to tak, chociaż zobacz poniżej:

document.write('<script src="myscript.js" type="text/javascript"></script>');

Zostanie to wykonane po całkowitym przeanalizowaniu znacznika skryptu, a jeśli umieścisz swój znacznik skryptu w nagłówku, nowy znacznik skryptu również znajdzie się w nagłówku zaraz po wykonaniu. Zachowaj ostrożność, aby wykonać go bezpośrednio, a nie wtedy, gdy dokument został załadowany (jak w $(function(){}) oddzwonić. Właśnie tego używam:

(function(){
  function load(script) {
    document.write('<'+'script src="'+script+'" type="text/javascript"><' + '/script>');
  }

  load("script1.js");
  load("script2.js");
  load("etc.js");
})();

Funkcja otaczająca jest po to, aby nie zanieczyszczać globalnej przestrzeni nazw.

The caveat (i dlaczego "skrypt", który jest podzielony powyżej) jest to, że nie może być żadnych końcowych znaczników skryptu w znaczniku skryptu, parser HTML nie wie, że jest częścią skryptu. Jest inne pytanie na ten temat.


16
2018-01-08 12:36





JavaScript sama w sobie nie zapewnia żadnej pomocy z modularyzacją inną niż zdolność do eval ciąg znaków. Ale jest to dość powszechna potrzeba, aby większość dużych frameworków javascript wymyśliła własne rozwiązania, a ostatnio podjęto próbę standaryzacji tych API w requirejs projekt. Jeśli korzystasz z frameworka, takiego jak Dojo lub jQuery, prawdopodobnie najlepiej nauczyć się korzystać z ich usług, ale jeśli nie, requirejs jest lekkim samodzielnym narzędziem. Zasadniczo po prostu dodaj

<script data-main="scripts/main" src="scripts/require.js"></script>

dla Twojej <head> sekcja, a następnie umieść własny javascript wewnątrz jakiegoś takiego kodu (skradzionego z require.js teren):

require(["helper/util"], function() {
    //This function is called when scripts/helper/util.js is loaded.

    require.ready(function() {
        //This function is called when the page is loaded
        //(the DOMContentLoaded event) and when all required
        //scripts are loaded.

    });
});

3
2018-05-05 05:10





posługiwać się const dataName =require('./fileName.js');


3
2018-06-22 01:37