Van arra lehetőség drupal 8-abn, hogy egy modul szerkesztésekor, mikor a libraries.yml-ben felveszem a javascript library-t, akkor valahogy arra utasítsam a drupal-t, hogy ne az oldal végéhez fűzze a js fájlt (ahova általában fűzi a js fájlokat), hanem a head részben töltse be rögtön az oldal elején?
Drupal verzió:
Fórum:
https://drupal.stackexchange
https://drupal.stackexchange.com/questions/104091/how-do-i-add-css-javas...
Első hozzászólásban lesz ami kell neked.
Egyszerűbb, mint gondoltam
Egy kérdésem lenne: az is megoldható, hogy csak egyes js fájlok töltődjenek be a head részben és mások ne?
Ha jól értelmezem itt minden a fejrészbe lesz betöltve. Egy olyan modult írok, ahol a legtöbb js tökéletesen megfelel, ha az alapértelmezett helyen töltődik be, sőt az a jó, de egy js fájlt feltétlenül a head részben kellene betöltenem, hogy rendben működjön.
A témád info fájljában tudsz
A témád info fájljában tudsz definiálni több library-t is a "libraries" kulcs alá pl.
info.yml:
libraries.yml:
Nem próbáltam ki, de elméletileg működnie kell.
Köszönöm!
Adaptáltam a megoldást a modulra és működik.
Még nem próbáltam, de témából (sminkből) felül lehet bírálni egy modul létező js fájlját?
Mármint, hogy csak az adott modul aktivitása esetén működjön és ne töltődjön be.
Valamint eszembe jutott egy új kérdés, bár ez most nem fontos. Mi van akkor, ha több window.onload, vagy window.onresize eseményre lenne szükségem eltérő modulokban.
Gondolok itt az alábbi esetre:
first.js :
...
window.onload= function fone{}
second.js:
...
window.onload=function ftwo{}
Ekkor csak az egyik működik. Van arra lehetőség, hogy mind a kettő lefusson az esemény bekövetkeztekor? Úgy, hogy előre nem lehet tudni, hogy csak az első, vagy csak a második, netán mindegyik fájl betöltésre kerül.
Igen!
Igen!
Van több megoldás is rá, attól függ mi a célod vele.
Téma .info fájljában tudsz használni olyan kulcsot, hogy libraries-override:
Érdemes ezt a részt végigfutnod, mert tud még pár ügyes dolgot: https://www.drupal.org/docs/8/theming-drupal-8/adding-stylesheets-css-an...
Másik megoldás az, hogy preprocess() függvényt használsz a témád .theme fájljában.
A js event-es kérdésben sajnos nem vagyok kompetens.
Igen ezekkel, már játszottam.
Így gyomláltam ki az alapértelmezett css-eket. A js-ek egy részét is hasonlóan tiltottam le, de a felülírós rész áttanulmányozom, mert a cél az, hogy egy adott modulhoz szükséges js fájl csak, akkor töltődjön be, ha a modul is aktív.
Köszönöm a választ!
Az eseményes rész feldobom külön. Egyedileg írt oldalnál változó függvényt alkalmaztam, de ez a megoldás nehezen menedzselhető drupal alatt. Ezért keresem a drupal-hoz legjobb megoldást, mert akadnak olyan esetek, amikor az oldal betöltődése után kell lefutnia egy szkriptnek, vagy a böngésző átméretezésekor. Az pedig könnyedén előfordulhat, hogy egyes modulok esetén is szükségem lehet erre.