Czy w JavaScript jest coś podobnego do @import
CSS, co pozwala na dołączenie pliku JavaScript do innego pliku JavaScript?
javascript
file
import
include
Alec Smart
źródło
źródło
script
tagów?Odpowiedzi:
Stare wersje JavaScript nie importowały, nie zawierały ani nie wymagały, dlatego opracowano wiele różnych podejść do tego problemu.
Ale od 2015 r. (ES6) JavaScript ma standard modułów ES6 do importowania modułów w Node.js, który jest również obsługiwany przez większość nowoczesnych przeglądarek .
W celu zapewnienia zgodności ze starszymi przeglądarkami można używać narzędzi do budowania, takich jak Webpack i Rollup, i / lub narzędzi do transpozycji, takich jak Babel .
Moduły ES6
Moduły ECMAScript (ES6) są obsługiwane w Node.js od wersji 8.5, z
--experimental-modules
flagą, i od co najmniej Node.js wersji 13.8.0 bez flagi. Aby włączyć „ESM” (w porównaniu z poprzednim systemie modułu CommonJS stylu node.js za [ „CJS”]) użyć albo"type": "module"
wpackage.json
lub dać pliki z rozszerzeniem.mjs
. (Podobnie moduły napisane przy użyciu poprzedniego modułu CJS Node.js można nazwać,.cjs
jeśli domyślnym jest ESM.)Używanie
package.json
:Następnie
module.js
:Następnie
main.js
:Używając
.mjs
będziesz miałmodule.mjs
:Następnie
main.mjs
:Moduły ECMAScript w przeglądarkach
Przeglądarki mają obsługę bezpośredniego ładowania modułów ECMAScript (nie są wymagane żadne narzędzia, takie jak Webpack) od Safari 10.1, Chrome 61, Firefox 60 i Edge 16. Sprawdź bieżącą obsługę w caniuse . Nie ma potrzeby używania
.mjs
rozszerzenia Node.js ; przeglądarki całkowicie ignorują rozszerzenia plików w modułach / skryptach.Czytaj więcej na https://jakearchibald.com/2017/es-modules-in-browsers/
Dynamiczne importowanie w przeglądarkach
Dynamiczne importowanie pozwala skryptowi ładować inne skrypty w razie potrzeby:
Czytaj więcej na https://developers.google.com/web/updates/2017/11/dynamic-import
Wymagane są pliki Node.js
Starszym stylem modułu CJS, wciąż szeroko stosowanym w Node.js, jest
module.exports
/require
system.Istnieją inne sposoby włączania przez JavaScript zewnętrznych treści JavaScript w przeglądarkach, które nie wymagają wstępnego przetwarzania.
Ładowanie AJAX
Możesz załadować dodatkowy skrypt z wywołaniem AJAX, a następnie użyć go
eval
do uruchomienia. Jest to najprostszy sposób, ale jest ograniczony do Twojej domeny ze względu na model bezpieczeństwa piaskownicy JavaScript. Korzystanieeval
również otwiera drzwi do błędów, włamań i problemów bezpieczeństwa.Pobierz ładowanie
Podobnie jak w przypadku dynamicznych importów, możesz załadować jeden lub wiele skryptów z
fetch
wywołaniem, używając obietnic do kontrolowania kolejności wykonywania zależności skryptów za pomocą biblioteki Fetch Inject :Ładowanie jQuery
JQuery biblioteki zapewnia funkcjonalność ładowania w jednej linii :
Dynamiczne ładowanie skryptu
Możesz dodać tag HTML ze skryptu URL do HTML. Jest to idealne rozwiązanie, aby uniknąć narzutów związanych z jQuery.
Skrypt może nawet znajdować się na innym serwerze. Ponadto przeglądarka ocenia kod.
<script>
Znacznik może być wstrzykiwany do każdej strony internetowej<head>
, lub włożona tuż przed zamykającym</body>
tagiem.Oto przykład, jak to może działać:
Ta funkcja doda nowy
<script>
znacznik na końcu sekcji nagłówka strony, gdziesrc
atrybut jest ustawiony na adres URL podany funkcji jako pierwszy parametr.Oba te rozwiązania zostały omówione i zilustrowane w JavaScript Madness: Dynamic Script Loading .
Wykrywanie, kiedy skrypt został wykonany
Teraz jest duży problem, o którym musisz wiedzieć. Oznacza to, że zdalnie ładujesz kod . Nowoczesne przeglądarki internetowe załadują plik i wykonają bieżący skrypt, ponieważ ładują wszystko asynchronicznie, aby poprawić wydajność. (Dotyczy to zarówno metody jQuery, jak i metody ręcznego dynamicznego ładowania skryptów.)
Oznacza to, że jeśli użyjesz tych sztuczek bezpośrednio, nie będziesz mógł użyć nowo załadowanego kodu w następnym wierszu po tym, jak poprosiłeś o jego załadowanie , ponieważ nadal będzie się ładował .
Na przykład:
my_lovely_script.js
zawieraMySuperObject
:Następnie ponownie ładujesz uderzanie strony F5. I to działa! Zagmatwane...
Co z tym zrobić?
Możesz użyć hacka, który autor sugeruje w linku, który ci podałem. Podsumowując, dla osób, którym się spieszy, używa zdarzenia do uruchomienia funkcji zwrotnej po załadowaniu skryptu. Możesz więc umieścić cały kod za pomocą biblioteki zdalnej w funkcji wywołania zwrotnego. Na przykład:
Następnie piszesz kod, którego chcesz użyć PO załadowaniu skryptu do funkcji lambda :
Następnie wykonujesz to wszystko:
Zauważ, że skrypt może zostać wykonany po załadowaniu DOM lub wcześniej, w zależności od przeglądarki i tego, czy podałeś wiersz
script.async = false;
. Ogólnie jest świetny artykuł na temat ładowania Javascript .Scalanie / przetwarzanie wstępne kodu źródłowego
Jak wspomniano na początku tej odpowiedzi, wielu programistów używa w swoich projektach narzędzi do kompilacji / transpilacji, takich jak Parcel, Webpack lub Babel, co pozwala im korzystać z nadchodzącej składni JavaScript, zapewniać zgodność wsteczną dla starszych przeglądarek, łączyć pliki, minimalizować, wykonać dzielenie kodu itp.
źródło
onreadystatechange
zdarzenia ireadyState
właściwości). Ponadto dynamiczne ładowanie skryptów nie korzysta ze skanerów wstępnego ładowania przeglądarki. Poleć ten artykuł HTML5Rocks: html5rocks.com/en/tutorials/speed/script-loadingJeśli ktoś szuka czegoś bardziej zaawansowanego, wypróbuj RequireJS . Dostaniesz dodatkowe korzyści, takie jak zarządzanie zależnościami, lepsza współbieżność i unikanie powielania (czyli pobierania skryptu więcej niż jeden raz).
Możesz pisać pliki JavaScript w „modułach”, a następnie określać je jako zależności w innych skryptach. Lub możesz użyć RequireJS jako prostego rozwiązania „idź dostać ten skrypt”.
Przykład:
Zdefiniuj zależności jako moduły:
some-dependency.js
Implementacja.js to „główny” plik JavaScript, który zależy od pliku dependence.js
Fragment GITHub README:
źródło
Tam faktycznie jest to sposób, aby załadować plik JavaScript nie asynchronicznie, więc można korzystać z funkcji zawartych w nowo załadowanej właściwy plik po załadowaniu go i myślę, że to działa we wszystkich przeglądarkach.
Trzeba użyć
jQuery.append()
na<head>
elemencie strony, to jest:Jednak ta metoda ma również problem: jeśli wystąpi błąd w importowanym pliku JavaScript, Firebug (a także konsola błędów Firefox i narzędzia programistyczne Chrome ) niepoprawnie zgłosi swoje miejsce, co jest dużym problemem, jeśli używasz Firebug do śledzenia Błędy JavaScript w dół dużo (robię). Firebug po prostu nie wie o nowo załadowanym pliku z jakiegoś powodu, więc jeśli wystąpi błąd w tym pliku, zgłasza, że wystąpił w głównym pliku HTML , i będziesz miał problemy ze znalezieniem prawdziwej przyczyny błędu.
Ale jeśli nie jest to dla ciebie problemem, ta metoda powinna działać.
Napisałem wtyczkę jQuery o nazwie $ .import_js (), która używa tej metody:
Wszystko, co musisz zrobić, aby zaimportować JavaScript, to:
Zrobiłem też prosty test w tym przykładzie .
Zawiera
main.js
plik w głównym HTML, a następnie skryptmain.js
używa$.import_js()
do importowania dodatkowego pliku o nazwieincluded.js
, który definiuje tę funkcję:I zaraz po tym
included.js
,hello()
funkcja jest wywoływana, a otrzymasz powiadomienie.(Ta odpowiedź jest odpowiedzią na komentarz e-satis).
źródło
jQuery.getScript
, dzięki czemu nie musisz się martwić pisaniem wtyczki ...script
elementuhead
spowoduje, że będzie on działał asynchronicznie, chyba żeasync
jest to specjalnie ustawionefalse
."
, kod sięInnym sposobem, który moim zdaniem jest znacznie czystszy, jest utworzenie synchronicznego żądania Ajax zamiast użycia
<script>
tagu. Tak też obejmuje Node.js.Oto przykład użycia jQuery:
Następnie możesz użyć go w kodzie, ponieważ zwykle używasz dołączenia:
I być w stanie wywołać funkcję z wymaganego skryptu w następnym wierszu:
źródło
async: false
podobno jest przestarzały. Nie jest! Jak podaje cytat, tylko rzeczy związane z jqXHR są.To dla ciebie dobra wiadomość. Już wkrótce będziesz mógł łatwo załadować kod JavaScript. Stanie się standardowym sposobem importowania modułów kodu JavaScript i będzie częścią samego jądra JavaScript.
Musisz po prostu napisać,
import cond from 'cond.js';
aby załadować makro o nazwiecond
z plikucond.js
.Nie musisz więc polegać na żadnej strukturze JavaScript ani jawnie wykonywać połączeń Ajax .
Odnosić się do:
Rozdzielczość modułu statycznego
Moduły ładujące
źródło
Możliwe jest dynamiczne generowanie znacznika JavaScript i dołączanie go do dokumentu HTML z innego kodu JavaScript. Spowoduje to załadowanie ukierunkowanego pliku JavaScript.
źródło
js.onload = callback;
Oświadczenie
import
znajduje się w ECMAScript 6.Składnia
źródło
Może możesz użyć tej funkcji, którą znalazłem na tej stronie Jak dołączyć plik JavaScript do pliku JavaScript? :
źródło
script.onload = callback;
var
zmienna będzie globalna?head
.Oto wersja synchroniczna bez jQuery :
Pamiętaj, że aby uzyskać działającą między domenami, serwer będzie musiał ustawić
allow-origin
nagłówek w swojej odpowiedzi.źródło
http://web.archive.org/web/20140905044059/http://www.howtocreate.co.uk/operaStuff/userjs/aagmfunctions.js
)<script>
znacznika, a nie za pośrednictwemXMLHttpRequest
.const XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1");
Właśnie napisałem ten kod JavaScript (używając Prototypu do manipulacji DOM ):
Stosowanie:
Gist: http://gist.github.com/284442 .
źródło
Oto uogólniona wersja tego, jak Facebook robi to z ich wszechobecnym przyciskiem Like:
Jeśli działa na Facebooku, będzie działał dla Ciebie.
Powodem, dla którego szukamy pierwszego
script
elementu zamiasthead
lubbody
jest to, że niektóre przeglądarki nie tworzą go, jeśli go brakuje, ale na pewno mamyscript
element - ten. Przeczytaj więcej na http://www.jspatterns.com/the-ridiculous-case-of-adding-a-script-element/ .źródło
Jeśli chcesz w czystym JavaScript, możesz użyć
document.write
.Jeśli korzystasz z biblioteki jQuery, możesz użyć tej
$.getScript
metody.źródło
Możesz także składać skrypty za pomocą PHP :
Plik
main.js.php
:źródło
Większość przedstawionych tu rozwiązań zakłada obciążenie dynamiczne. Zamiast tego szukałem kompilatora, który składałby wszystkie zależne pliki w jeden plik wyjściowy. Tak samo jak preprocesory Less / Sass zajmują się CSS
@import
zasadą . Ponieważ nie znalazłem nic przyzwoitego tego rodzaju, napisałem proste narzędzie do rozwiązania tego problemu.Oto kompilator https://github.com/dsheiko/jsic , który bezpiecznie zastępuje
$import("file-path")
żądaną zawartość pliku. Oto odpowiednia wtyczka Grunt : https://github.com/dsheiko/grunt-jsic .W gałęzi master jQuery łączą po prostu atomowe pliki źródłowe w jeden, zaczynając od
intro.js
i kończąc naouttro.js
. Nie odpowiada mi to, ponieważ nie zapewnia elastyczności w projektowaniu kodu źródłowego. Sprawdź, jak to działa z jsic:src / main.js
src / Form / Input / Tel.js
Teraz możemy uruchomić kompilator:
I pobierz połączony plik
build / main.js
źródło
Jeśli zamierzasz załadować plik JavaScript, korzystasz z funkcji z importowanego / dołączonego pliku , możesz również zdefiniować obiekt globalny i ustawić funkcje jako elementy obiektu. Na przykład:
global.js
plik1.js
plik2.js
main.js
Musisz tylko zachować ostrożność, dołączając skrypty do pliku HTML. Kolejność powinna wyglądać jak poniżej:
źródło
To powinno zrobić:
źródło
eval
to co się dzieje z nim. Od Crockforda „eval
jest zła. Naeval
funkcja jest najbardziej nadużywane cechą JavaScript. Uniknąć.eval
Ma aliasów. Nie należy używaćFunction
konstruktora. Nie przechodzą ciągisetTimeout
lubsetInterval
”. Jeśli nie przeczytałeś jego „JavaScript: The Good Parts”, wyjdź i zrób to teraz. Państwo będzie nie pożałujesz.http://web.archive.org/web/20140905044059/http://www.howtocreate.co.uk/operaStuff/userjs/aagmfunctions.js
)Lub zamiast włączać go w czasie wykonywania, użyj skryptu do konkatenacji przed przesłaniem.
Używam zębatek (nie wiem, czy są inne). Tworzysz swój kod JavaScript w osobnych plikach i dołączasz komentarze, które są przetwarzane przez silnik Sprockets. W celu programowania można dołączać pliki sekwencyjnie, a następnie w celu ich scalenia w środowisku produkcyjnym ...
Zobacz też:
źródło
Miałem prosty problem, ale zaskoczyły mnie odpowiedzi na to pytanie.
Musiałem użyć zmiennej (myVar1) zdefiniowanej w jednym pliku JavaScript (myvariables.js) w innym pliku JavaScript (main.js).
Zrobiłem to w następujący sposób:
Załadowałem kod JavaScript do pliku HTML, w odpowiedniej kolejności, najpierw myvariables.js, a następnie main.js:
Plik: myvariables.js
Plik: main.js
Jak widzieliście, użyłem zmiennej w jednym pliku JavaScript w innym pliku JavaScript, ale nie musiałem uwzględniać jednej w innym. Musiałem tylko upewnić się, że pierwszy plik JavaScript załadowany przed drugim plikiem JavaScript oraz zmienne pierwszego pliku JavaScript są automatycznie dostępne w drugim pliku JavaScript.
To uratowało mi dzień. Mam nadzieję, że to pomoże.
źródło
import
. Potrzebujesz pliku HTML, aby przenieść rzeczy z jednego pliku js do drugiego.<script>
znacznik. Może to pomóc w organizacji. Ta odpowiedź po prostu nie jest pytaniem i nie jest idealna w tym kontekście.Jeśli używasz pracowników sieci Web i chcesz uwzględnić dodatkowe skrypty w zakresie pracownika, inne odpowiedzi na temat dodawania skryptów do
head
znacznika itp. Nie będą działać.Na szczęście pracownicy sieci mają swoją własną
importScripts
funkcję, która jest funkcją globalną w zakresie pracownika sieci, natywną dla samej przeglądarki, ponieważ jest częścią specyfikacji .Alternatywnie, ponieważ wyróżnia się druga najwyżej oceniona odpowiedź na twoje pytanie , RequireJS może również obsługiwać dołączanie skryptów wewnątrz procesu roboczego (prawdopodobnie wywołuje
importScripts
się, ale z kilkoma innymi przydatnymi funkcjami).źródło
W nowoczesnym języku ze sprawdzeniem, czy skrypt został już załadowany, byłoby to:
Użycie (asynchronizacja / oczekiwanie):
lub
Zastosowanie (obietnica):
źródło
var pi = 3.14
. wywołaj funkcję loadJS () przezloadJs("pi.js").then(function(){ console.log(pi); });
@import
Składni CSS dla osiągnięcia podobnego JavaScript importowanie jest możliwe przy użyciu narzędzia takiego jak mieszanka poprzez ich szczególny.mix
typ pliku (patrz tutaj ). Wyobrażam sobie, że aplikacja po prostu korzysta z jednej z wyżej wymienionych metod, chociaż nie wiem.Z dokumentacji Mixture dotyczącej
.mix
plików:Oto przykładowy
.mix
plik, który łączy wiele.js
plików w jeden:Mikstura generuje to jako,
scripts-global.js
a także jako wersja zminimalizowana (scripts-global.min.js
).Uwaga: nie jestem w żaden sposób związany z Mixture, poza wykorzystywaniem go jako narzędzia programistycznego front-end. Natknąłem się na to pytanie, widząc
.mix
plik JavaScript w akcji (w jednym z bojlerów Mixture) i byłem przez to nieco zdezorientowany („możesz to zrobić?” Pomyślałem sobie). Potem zdałem sobie sprawę, że był to plik specyficzny dla aplikacji (nieco rozczarowujący, zgodził się). Niemniej jednak doszedł do wniosku, że wiedza ta może być pomocna dla innych.AKTUALIZACJA : Mieszanina jest teraz darmowa (offline).
AKTUALIZACJA : Mieszanina jest teraz wycofana. Stare wersje mieszanin są nadal dostępne
źródło
źródło
body
jeszcze nie istnieje lub nie można go modyfikować. Pomaga także wyjaśnić odpowiedzi.Moją zwykłą metodą jest:
Działa świetnie i nie używa dla mnie przeładowywania stron. Próbowałem metody AJAX (jedna z pozostałych odpowiedzi), ale nie wydaje mi się, aby działała tak ładnie.
Oto wyjaśnienie, w jaki sposób działa kod dla tych, którzy są ciekawi: zasadniczo tworzy nowy znacznik skryptu (po pierwszym) adresu URL. Ustawia go w tryb asynchroniczny, aby nie blokował reszty kodu, ale wywołuje wywołanie zwrotne, gdy readyState (stan treści do załadowania) zmieni się na „załadowany”.
źródło
Chociaż te odpowiedzi są świetne, istnieje proste „rozwiązanie”, które istniało od czasu załadowania skryptu i obejmie 99,999% przypadków użycia większości ludzi. Wystarczy dołączyć skrypt, którego potrzebujesz, przed skryptem, który tego wymaga. W przypadku większości projektów ustalenie, które skrypty są potrzebne i w jakiej kolejności, nie zajmuje dużo czasu.
Jeśli skrypt2 wymaga skryptu 1, jest to naprawdę najłatwiejszy sposób na zrobienie czegoś takiego. Jestem bardzo zaskoczony, że nikt tego nie podniósł, ponieważ jest to najbardziej oczywista i najprostsza odpowiedź, która będzie obowiązywać w prawie każdym przypadku.
źródło
Napisałem prosty moduł, który automatyzuje zadanie importowania / włączania skryptów modułów w JavaScript. Szczegółowe objaśnienie kodu znajduje się w blogu JavaScript wymagają / importu / włączenia modułów .
źródło
Ten skrypt doda plik JavaScript do góry dowolnego innego
<script>
tagu:źródło
Istnieje również Head.js . Bardzo łatwo jest poradzić sobie z:
Jak widać, jest to łatwiejsze niż Require.js i tak wygodne jak
$.getScript
metoda jQuery . Ma również kilka zaawansowanych funkcji, takich jak ładowanie warunkowe, wykrywanie funkcji i wiele innych .źródło
Istnieje wiele potencjalnych odpowiedzi na to pytanie. Moja odpowiedź opiera się oczywiście na wielu z nich. Właśnie z tym skończyłem po przeczytaniu wszystkich odpowiedzi.
Problem z
$.getScript
jakimkolwiek innym rozwiązaniem, które wymaga oddzwonienia po zakończeniu ładowania, polega na tym, że jeśli masz wiele plików, które go używają i są od siebie zależne, nie możesz już wiedzieć, kiedy wszystkie skrypty zostały załadowane (po zagnieżdżeniu w wielu plikach).Przykład:
plik3.js
plik2.js:
plik1.js:
Masz rację, gdy mówisz, że możesz określić, że Ajax ma działać synchronicznie lub użyć XMLHttpRequest , ale wydaje się, że obecnym trendem jest wycofywanie synchronicznych żądań, więc możesz nie uzyskać pełnej obsługi przeglądarki teraz lub w przyszłości.
Możesz spróbować
$.when
sprawdzić tablicę odroczonych obiektów, ale teraz robisz to w każdym pliku, a plik2 zostanie uznany za załadowany, gdy tylko$.when
zostanie wykonany, a nie po wywołaniu zwrotnym, więc plik1 nadal kontynuuje wykonywanie przed załadowaniem pliku3 . To naprawdę ma ten sam problem.Postanowiłem wrócić do tyłu zamiast do przodu. Dziękuję
document.writeln
. Wiem, że jest to tabu, ale dopóki jest właściwie używane, działa dobrze. Otrzymujesz kod, który można łatwo debugować, wyświetla poprawnie w DOM i może zapewnić porządek, w jaki zależności są ładowane poprawnie.Oczywiście możesz użyć $ („body”). Append (), ale wtedy nie możesz już poprawnie debugować.
UWAGA: Musisz użyć tego tylko podczas ładowania strony, w przeciwnym razie pojawi się pusty ekran. Innymi słowy, zawsze umieszczaj to przed / poza dokumentem . Już . Nie testowałem tego przy użyciu po załadowaniu strony w zdarzeniu kliknięcia itp., Ale jestem pewien, że to się nie powiedzie.
Podobał mi się pomysł rozszerzenia jQuery, ale oczywiście nie musisz.
Przed wywołaniem
document.writeln
sprawdza, czy skrypt nie został już załadowany, oceniając wszystkie elementy skryptu.Zakładam, że skrypt nie jest w pełni wykonany, dopóki
document.ready
nie zostanie wykonane jego zdarzenie. (Wiem, że używaniedocument.ready
nie jest wymagane, ale wiele osób korzysta z niego, a obchodzenie się z tym jest zabezpieczeniem).Po załadowaniu dodatkowych plików
document.ready
wywołania zwrotne zostaną wykonane w niewłaściwej kolejności. Aby rozwiązać ten problem, gdy skrypt jest rzeczywiście ładowany, skrypt, który go zaimportował, jest ponownie importowany i wykonywanie jest zatrzymywane. Powoduje to, że plik źródłowy ma terazdocument.ready
wywołanie zwrotne po dowolnym z importowanych skryptów.Zamiast tego podejścia można było spróbować zmodyfikować jQuery
readyList
, ale wydawało się to gorszym rozwiązaniem.Rozwiązanie:
Stosowanie:
Plik 3:
Plik2:
Plik 1:
źródło
Istnieje kilka sposobów implementacji modułów w Javascript, oto 2 najpopularniejsze:
Moduły ES6
Przeglądarki nie obsługują jeszcze tego systemu modulowania, więc aby skorzystać z tej składni, musisz użyć programu pakującego, takiego jak webpack. Korzystanie z pakietu jest i tak lepsze, ponieważ może łączyć wszystkie różne pliki w jeden (lub kilka powiązanych) plików. Pozwoli to szybciej przesyłać pliki z serwera do klienta, ponieważ do każdego żądania HTTP jest przypisany jakiś narzut. W ten sposób zmniejszając ogólne żądanie HTTP, poprawiamy wydajność. Oto przykład modułów ES6:
CommonJS (używany w NodeJS)
Ten system modulacji jest używany w NodeJS. Zasadniczo dodajesz swój eksport do obiektu, który jest nazywany
module.exports
. Następnie możesz uzyskać dostęp do tego obiektu za pomocąrequire('modulePath')
. Ważne jest, aby zdać sobie sprawę, że te moduły są buforowane, więc jeślirequire()
dany moduł zostanie dwukrotnie, zwróci on już utworzony moduł.źródło
Przyszedłem do tego pytania, ponieważ szukałem prostego sposobu na utrzymanie kolekcji przydatnych wtyczek JavaScript. Po obejrzeniu niektórych rozwiązań tutaj wymyśliłem:
Skonfiguruj plik o nazwie „plugins.js” (lub extensions.js lub cokolwiek chcesz). Zachowaj pliki wtyczek razem z tym jednym plikiem głównym.
plugins.js będzie miał tablicę o nazwie
pluginNames[]
, którą będziemy iterowaćeach()
, a następnie doda<script>
tag do nagłówka dla każdej wtyczki<script src="js/plugins/plugins.js"></script>
ALE:
Mimo że wszystkie wtyczki są upuszczane do tagu head tak, jak powinny, nie zawsze są uruchamiane przez przeglądarkę po kliknięciu na stronę lub odświeżeniu.
Odkryłem, że bardziej niezawodne jest pisanie tagów skryptowych w PHP. Musisz go napisać tylko raz, a to tyle samo pracy, co wywołanie wtyczki za pomocą JavaScript.
źródło