Javascripts laufen nicht mehr
am 07.10.2007 - 13:11 Uhr in
Hey, ich habe ein Problem mit einer Drupal Installation und weiß einfach
nicht woran es liegen könnte. Bisher lief alles bestens, und ich habe nur
am Theme Änderungen vorgenommen soweit ich mich errinnere. Jetzt ist mir
aufgefallen die Javascripts nicht mehr laufen, sie sind zwar vorhanden
und scheinen auch im Quelltext auf da ich sie im Theme ja auch eingebunden
habe, aber sie greifen einfach nicht mehr. Wenn ich das richtig sehe dann
funktioniert gar keines mehr, das textbox resizing, alles was von System
Seite kommt.
Jemand einen Tipp woran das liegen könnte? Vielen Dank.
Edit: Das Problem ist eingegrenzt, Javascripts werden nicht ausgeführt
wenn JQuerys $(document).ready Methode genutzt wird.
- Anmelden oder Registrieren um Kommentare zu schreiben
Javasript = Clientscript.
am 07.10.2007 - 13:15 Uhr
Javasript = Clientscript. Leere mal den Browsercache. Oder mach auf die Seiten mit Umschalttaste + Reloadbutton ein Zwangsrefresh.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Hey, danke für die schnelle
am 07.10.2007 - 13:42 Uhr
Hey, danke für die schnelle Antwort!
Das Javascript auf der Clientseite ausgeführt wird ist mir durchaus bewußt.
Ich verstehe nicht was hier ein Cache leeren bezwecken sollte? Habe es jetzt
trotzdem mal versucht und es bringt wie vermutet keine Änderung.
Merkwürdig ist, meine eigenen Scripts laufen bestens, also an falschen Pfadangaben
o.ä. kann es auch nicht liegen. Die Scripts sind vorhanden, drupal.js, jquery.js,
collapse.js, textarea.js, usw.. Ich gehe davon aus dass die Scripts einfach nur
nicht ausgeführt werden, anhand des collapse.js zum Beispiel:
// Global Killswitch
if (Drupal.jsEnabled) {
$(document).ready(function() {
$('fieldset.collapsible > legend').each(function() {
var fieldset = $(this.parentNode);
// Expand if there are errors inside
if ($('input.error, textarea.error, select.error', fieldset).size() > 0) {
fieldset.removeClass('collapsed');
}
// Turn the legend into a clickable link and wrap the contents of the fieldset
// in a div for easier animation
var text = this.innerHTML;
$(this).empty().append($('<a href="#">'+ text +'</a>').click(function() {
var fieldset = $(this).parents('fieldset:first')[0];
// Don't animate multiple times
if (!fieldset.animating) {
fieldset.animating = true;
Drupal.toggleFieldset(fieldset);
}
return false;
})).after($('<div class="fieldset-wrapper"></div>').append(fieldset.children(':not(legend)')));
});
});
}
Dieser Teil wird dann wohl nicht ausgeführt. Wo wird die Variable Drupal.jsEnabled gestetzt und
woran orientiert sich diese? Ich vermute hier liegt das Problem.
Um beim Beispiel collapsible.js zu bleiben. Es ist so dass die Fieldsets auch nicht
einfach sichtbar wären, sondern sie werden versteckt, die CSS Klassen werden also
gesetzt ( class=" collapsible collapsed" ) nur die legend wird nicht zu einem klickbaren
Hyperlink wie im Script vorgesehen.
Ist die Seite an der Du
am 07.10.2007 - 18:34 Uhr
Ist die Seite an der Du arbeitest online? Wenn ja gib mal bitte den Link.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Nein ist leider nicht online
am 07.10.2007 - 19:51 Uhr
Nein ist leider nicht online zu betrachten.
Schalte mal testhalber das
am 07.10.2007 - 21:38 Uhr
Schalte mal testhalber das Theme um.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
quiptime wrote:
am 07.10.2007 - 22:12 Uhr
Schalte mal testhalber das Theme um.
Das Problem besteht auch weiterhin wenn ein anderes Theme wie z.B.
das Standard Theme Garland aktiviert ist.
Wie gesagt werden meine zusätzlichen Scripts ausgeführt und auch
ein testen mit
window.onload = function() {
if (Drupal.jsEnabled) {
alert('test');
}
}
liefert ein Ergebnis.
Das Problem scheint auch nicht beim Theme zu liegen, da auf einer anderen
Installation mit selbem Theme alles bestens funktioniert.
Zitat:Das Problem scheint
am 07.10.2007 - 23:05 Uhr
Das Problem scheint auch nicht beim Theme zu liegen, da auf einer anderen
Installation mit selbem Theme alles bestens funktioniert.
Die andere Installation ist identisch?
und ich habe nur
am Theme Änderungen vorgenommen soweit ich mich errinnere.
Hast Du eigene JavaScripte am Laufen?
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Nein, die andere
am 08.10.2007 - 08:16 Uhr
Nein, die andere Installation ist nicht ganz identisch, muss sie ja auch
nicht um zu testen ob mit dem Theme alles in Ordnung ist?
Und ja wie bereits erwähnt habe ich auch zwei-drei eigene Scripts laufen
die ohne Probleme funktionieren, diese sind aber auf keinen Fall der
Auslöser für das Problem.
Drupal.jsEnabled
am 08.10.2007 - 10:29 Uhr
Nein, die andere Installation ist nicht ganz identisch, muss sie ja auch
nicht um zu testen ob mit dem Theme alles in Ordnung ist?
Wuerde ich so nicht sagen. Es kommt darauf an welches Theme Du verwendest. Auch die Aussage, nur am Theme etwas geaendert zu haben ist relativ. Die Frage ist was hast Du wo geaendert?
Und ja wie bereits erwähnt habe ich auch zwei-drei eigene Scripts laufen
die ohne Probleme funktionieren, diese sind aber auf keinen Fall der
Auslöser für das Problem.
Hast Du einen Javascript Debugger? Firefox hat solch eine Konsole. Gibt der Debugger keine Hinweise?
Wo wird die Variable Drupal.jsEnabled gestetzt
drupal.js:
/**
* Set the variable that indicates if JavaScript behaviors should be applied
*/
Drupal.jsEnabled = document.getElementsByTagName && document.createElement && document.createTextNode && document.documentElement && document.getElementById;
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Firebug meldet die selben
am 08.10.2007 - 16:01 Uhr
Firebug meldet die selben Dinge wie in der funktionierenden Installation.
Am Theme wurden nur Kleinigkeiten geändert die meines erachtens nach auf
gar keinen Fall mit dem Problem zusammenhängen dürften.
An Drupal.jsEnabled scheint es wie weiter oben erwähnt ja nicht zu liegen
das war auch einfach nur eine Vermutung der ich noch nicht nachgegangen
war.
Sonst noch wer eine Idee?
Ok, ich komme dem Problem aber schon näher. Wie vermutet wird das benötigte
Script nicht ausgeführt, Ursache dafür liegt bei der
$(document).ready(function() {}
Funktion denn diese wird nicht ausgeführt. Wie gesagt, jquery.js ist vorhanden
sowie alle anderen Scripts auch, diese werden auch durchlaufen allerdings eben
nicht die notwendigen Teile welche bei $(document).ready ausgeführt werden sollen.
Weiß hier wirklich niemand
am 09.10.2007 - 18:20 Uhr
Weiß hier wirklich niemand weiter? Ich hänge einfach fest und
finde keine Lösung.
Pete wrote: Weiß hier
am 10.10.2007 - 21:07 Uhr
Weiß hier wirklich niemand weiter? Ich hänge einfach fest und
finde keine Lösung.
Ok, sorry für´s pushen. Mir ist eingefallen dass ich die Tage das Livesearch
Modul aktiviert hatte und da lag auch die Ursache, ich habe es deaktiviert und
nun läuft wieder alles normal. Allerdings möchte ich das Livesearch Modul gerne
einsetzen, ist jemandem das Problem bekannt?
Vielen Dank.