Reihenfolge der zu ladenden Javascript Dateien ändern
am 23.04.2013 - 09:59 Uhr in
Hallo zusammen!
wollte meiner Seite nach langer Zeit ein Update unterziehen und den CSlider einbinden. Ohne Modul und alles per Hand. Dazu habe ich mir ein View Block gebastelt. Leider funktioniert die Anzeige nicht so richtig. Gucke ich in den Quelltext, so ist der Inhalt zwar da, wird nur nicht angezeigt. Habe jetzt herausgefunden, dass die Reihenfolge der Javascript Dateien ausschalggebend ist.
Die Standard Reihenfolge fängt in etwa so an:
<script type="text/javascript" src="http://localhost:8888/test/sites/all/modules/jquery_update/replace/jquery/1.7/jquery.min.js?v=1.7.1"></script>
<script type="text/javascript" src="http://localhost:8888/test/misc/jquery.once.js?v=1.2"></script>
<script type="text/javascript" src="http://localhost:8888/test/misc/drupal.js?mlnv6y"></script>
.
.
.
<script type="text/javascript" src="http://localhost:8888/test/sites/all/themes/testtheme/js/bootstrap.min.js?mlnv6y"></script>
<script type="text/javascript" src="http://localhost:8888/test/sites/all/themes/testtheme/js/modernizr.custom.28468.js?mlnv6y"></script>
<script type="text/javascript" src="http://localhost:8888/test/sites/all/themes/testtheme/js/jquery.cslider.js?mlnv6y"></script>
<script type="text/javascript" src="http://localhost:8888/test/sites/all/themes/testtheme/js/jquery.hoverdir.js?mlnv6y"></script>
<script type="text/javascript" src="http://localhost:8888/test/sites/all/themes/testtheme/js/jquery.elastislide.js?mlnv6y"></script>
<script type="text/javascript" src="http://localhost:8888/test/sites/all/themes/testtheme/js/jquery.flexslider?mlnv6y"></script>
<script type="text/javascript" src="http://localhost:8888/test/sites/all/themes/testtheme/js/jquery.easing.1.3.js?mlnv6y"></script>
<script type="text/javascript" src="http://localhost:8888/test/sites/all/themes/testtheme/js/scripts.js?mlnv6y"></script>
Die untere Reihenfolge kann ich ja selber über die Info Datei bestimmen. Speichere ich die Seite als HTML Dokument ab und lösche drupal.js, so funktioniert der Slider problemlos. Lade ich drupal.js als erstes und danach erst jquery, so funktioniert der Slider auch. Somit wäre meine Frage, wie kann ich die Reihenfolge der oberen Liste ändern und ist es normal das es solche Konflikte gibt?
Schon mal vielen Dank!
Gruß
Julsen
- Anmelden oder Registrieren um Kommentare zu schreiben
Wenn das Problem wirklich an
am 23.04.2013 - 22:43 Uhr
Wenn das Problem wirklich an der Reihenfolge der EInbindung der Javascript Dateien liegt ( kenne das Script von dir da nicht ); kommst du da nur über den hook_js_alter ran. Dieses musst du in einem eigenen Modul implementieren und hast so Zugriff auf jede von Drupal eingebundene Javascript Datei. Neben der eigentlichen Reihenfolge - also der weight - kannst du hier auch die Gruppe angeben, in der dein Javascript eingebunden wird.
Alles Weitere zum hook findest du auf der API Seite erklärt:
http://api.drupal.org/api/drupal/modules%21system%21system.api.php/funct...
In folgendem Blog-Artikel geht es zwar eher um die Aggregation von CSS/ JS - aber die hooks an sich werden dort auch recht gut erklärt:
http://www.metaltoad.com/blog/drupal-7-taking-control-css-and-js-aggrega...
SteffenR
Besten Dank! Das Script ist
am 25.04.2013 - 10:35 Uhr
Besten Dank!
Das Script ist der CSlider, der will irgendwie nicht so richtig. Habe einfach jetzt noch mal mitten drin JQuery geladen und jetzt geht es :)
Julsen schrieb Besten
am 25.04.2013 - 11:51 Uhr
Besten Dank!
Das Script ist der CSlider, der will irgendwie nicht so richtig. Habe einfach jetzt noch mal mitten drin JQuery geladen und jetzt geht es :)
Einfach so mittendrin noch mal jQuery laden sollte man vermeiden, da dies zu anderen unerwünschten Effekten führen könnte.
Welche Probleme traten denn konkret auf ?
Vielleicht ist auch einfach die von Drupal bereitgestellte jQuery Version zu alt. Hier schafft das Modul [do:jquery_update] Abhilfe.
SteffenR
JQuery Update wird ja schon
am 25.04.2013 - 12:17 Uhr
JQuery Update wird ja schon genutzt. Problem scheint mir hier irgendwie das Drupal.js Script zu sein.
Problem ist halt, das ich spezielle Inhalte per View in einem Slider auf der Startseite anzeigen lassen will. Das ganze is mit CSlider bzw. da-slider umgesetzt. Die Inhalte sind dann nicht sichtbar und wechseln auch nicht.