• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Tip, um schnell einen Fehler zu finden

J

JPM

Guest
Hallihallo,

Ich fürchte, dass ich einfach zu dämlich bin und den Fehler selbst nicht finde. Ich habe eine Website, die mit bootstrap gebastelt ist. Also auf gut Deutsch: Millionen von einzelnen <div>-Bereichen. Seit der neusten Erneuerung ist nun das Problem, dass plötzlich die Seite hinter der Navigation verschwindet. Irgendwie hover-zeug. Was natürlich dazu führt, dass die NAvigation nicht mehr funktioniert. Da das mehrere Hundert Zeilen Code ist, hätte jemand ne Idee, wonach ich mal suchen sollte?

lieben Gruß,
JPM.

P.S.: Falls jemand ein Beispiel haben möchte: http://dr-vetter.com/en/holter_ecg.php
 
die NAvigation nicht mehr funktioniert
Schon mal auf "Home" geklickt?

Führt mich zu http://dr-vetter.com/en/index.php, wo das Problem mit den Dropdowns überhaupt nicht existiert.

Unterschied der funktionstüchtigen Seite, den ich im DeveloperTool des Browsers direkt gesehen habe:
HTML:
<body ... style="margin-top: 103px;">
<div class="parallax-mirror" style="visibility: hidden; z-index: -100; position: fixed; top: 0px; left: 0px; overflow: hidden;">...</div>
 
Hallo,

Seit der neusten Erneuerung ...

Was war denn diese Erneuerung? Wenn du diese rückgängig machst solltest du doch einen Anhaltspunkt haben, dann sind auch die Tausend Zeilen Code nicht so wichtig, da deine Änderung ja sicherlich innerhalb bestimmter Dateien war.

Oder hast du dir irgend ein komplettes neues Theme raufgezogen? Die Navigation bzw. "body.sticky_header .header" ist auf position: fixed; gesetzt. Wenn du das selbst eingebaut hast würde mich das schwer wundern, dass du dich über die verdeckende Navigation wunderst.

Auf der von dir verlinkten Seite gibt es aber ein Javascript Error, deswegen funktioniert dort kein Javascript mehr / deine Dropdown-Navigation.

PS: Diesen JS Fehler gilt es jetzt zu finden. Dadurch dass dein Javascript kaputt ist, wird auch der Content hinter der Navigation nicht mehr, wie vorher, nach unten geschoben und ist verdeckt. Das hat nämlich zuvor dein funktionierendes Javascript übernommen.
 
Zuletzt bearbeitet:
Was war denn diese Erneuerung? Wenn du diese rückgängig machst solltest du doch einen Anhaltspunkt haben, dann sind auch die Tausend Zeilen Code nicht so wichtig, da deine Änderung ja sicherlich innerhalb bestimmter Dateien war.

Ich habe tatsächlich an den beiden Flaggen oben rechts rumgebastelt. zwecks Sprachenwechsel. Aber damit scheint es nichts zu tun gehabt. Selbst wenn ich die Navigation komplett rausnehmen, spinnt es rum.

Oder hast du dir irgend ein komplettes neues Theme raufgezogen? Die Navigation bzw. "body.sticky_header .header" ist auf position: fixed; gesetzt. Wenn du das selbst eingebaut hast würde mich das schwer wundern, dass du dich über die verdeckende Navigation wunderst.

Ne, eigentlich habe ich von allem die Finger weggelassen, außer von der navigation.

Auf der von dir verlinkten Seite gibt es aber ein Javascript Error, deswegen funktioniert dort kein Javascript mehr / deine Dropdown-Navigation.

PS: Diesen JS Fehler gilt es jetzt zu finden. Dadurch dass dein Javascript kaputt ist, wird auch der Content hinter der Navigation nicht mehr, wie vorher, nach unten geschoben und ist verdeckt. Das hat nämlich zuvor dein funktionierendes Javascript übernommen.

Ich könnte dich küssen. Ich habe an alles gedacht, aber nicht an Javascript. Davon habe ich nämlich leider gar keinen Plan. Aber perfekt. dann weiß ich jetzt wenigstens wo ich anfangen muss. Dankeschön!
 
In Zeile 344 von theme.js ist vor dem jQuery-Selektor ein unerwünschtes Zeichen enthalten:
Code:
//====================== SCROLL ON CLICK OF A HASH-LINK init =================

(function($){

   $(".mainbar .main_menu, .topbar .top_menu")
     .find('a[href^="#"], button[href^="#"]')
      .add("a.scrollify")
      .on('click', _p.scrollOnClick );

  })(jQuery);
 
In Zeile 344 von theme.js ist vor dem jQuery-Selektor ein unerwünschtes Zeichen enthalten:
Code:
//====================== SCROLL ON CLICK OF A HASH-LINK init =================

(function($){

   $(".mainbar .main_menu, .topbar .top_menu")
     .find('a[href^="#"], button[href^="#"]')
      .add("a.scrollify")
      .on('click', _p.scrollOnClick );

  })(jQuery);

Ich bin gerade etwas Buff, wie du das gefunden hast. Ich sitze jetzt aber davor und verstehe absolut nur Bahnhof. Ich bin anscheinend sowieso nicht so der Crack in HTML und PHP, aber mit Javascript befasst sich eigentlich mein Arbeitskollege (der heute urlaub macht)... Würdest du... ? *blinzl blinzl*

EDIT:

Und mal so ganz nebenbei.. Warum funktioniert es manchmal und kackt manchmal rum? Ich sitz da jetzt schon wieder seit Stunden dran und könnte mich nur aufregen..
 
Zuletzt bearbeitet von einem Moderator:
Ich bin gerade etwas Buff, wie du das gefunden hast. Ich sitze jetzt aber davor und verstehe absolut nur Bahnhof. Ich bin anscheinend sowieso nicht so der Crack in HTML und PHP, aber mit Javascript befasst sich eigentlich mein Arbeitskollege (der heute urlaub macht)... Würdest du... ? *blinzl blinzl*
Hat mir die Fehlerkonsole des integrierten Entwicklerwerkzeugs im Browser offenbart :cool:
SyntaxError: missing ; before statement
http://dr-vetter.com/assets/js/theme.js
Line 344

 $(".mainbar .main_menu, .topbar .top_menu")
Die Datei im Editor Deines Vertrauens öffnen, die Leerzeichen vor dem Selektor entfernen, worin das Zeichen steckt, und vermutlich von Deinem Editor nicht angezeigt/dargestellt wird, Datei speichern.
 
Und mal so ganz nebenbei.. Warum funktioniert es manchmal und kackt manchmal rum? Ich sitz da jetzt schon wieder seit Stunden dran und könnte mich nur aufregen..
Das gehört doch zum Beruf "Webentwickler":D, sowas wirst du immer wieder haben. Wenn man den Fehler gefunden hat ist es meistens dann auch ganz logisch.

Wie findet man diesen JS Fehler: Die console in den Entwicklertools des Browsers öffnen. Im Chrome Entwicklertools öffnen und esc drücken öffnet/schließt die console. Diese zeigt dir beim Aufruf dann den Fehler ann und die Datei wo der Fehler ist -> dort drauf Klicken.

Ich weiß auf Anhieb auch nicht, warum dieses Sonderzeichen nur auf bestimmten Seiten ist. Die JS-Datei ist doch die selbe.

Aber: http://dr-vetter.com/en/download.php -> Das Formular auf dieser Seite... Überall wo dieses eingebunden ist, hast du deinen Javascript Fehler. Liegt das evtl. an dem Formular und den Scripts die du zusammen mit diesem eingebunden hast?
 
Code:
Liegt das evtl. an dem Formular und den Scripts die du zusammen mit diesem eingebunden hast?

haha.. Fuck me. Da bekommt man einen Aufgabenbereich von jemandem anderen überlassen, und sitzt dann vor sowas. Kann sein. Werde mich da jetzt mal rein lesen müssen.
http://dr-vetter.com/en/holter_ecg.php ...und läuft :):cool:

Bleibt in der Fehlerkonsole nur noch dieser 404-Error übrig:

Ja. das läuft immer mal wieder. Aber wirklich was verändert habe ich noch nicht.

Code:
Wie findet man diesen JS Fehler: Die console in den Entwicklertools des Browsers öffnen. Im Chrome Entwicklertools öffnen und esc drücken öffnet/schließt die console. Diese zeigt dir beim Aufruf dann den Fehler ann und die Datei wo der Fehler ist -> dort drauf Klicken.

Sehr cool. Sehr hilfreich, dankeschön.

Code:
Das Formular auf dieser Seite... Überall wo dieses eingebunden ist, hast du deinen Javascript Fehler. Liegt das evtl. an dem Formular und den Scripts die du zusammen mit diesem eingebunden hast?

Tja. Das befürchte ich auch. Ich muss mich da jetzt ransetzen. Nichts schlimmer als wenn es einen "gelegentlichen Fehler" gibt, den man nicht versteht. Aber Gottseidank ist ja jetzt Wochenende.. hab ich ja ganz viel Zeit :rolleyes:
 
Da der Fehler ja anscheinend etwas mit der Kodierung zu tun hat, habe ich da mal nachgeguckt.

Jede Seite, die den Fehler hatte, hat ISO statt UTF-8:
Code:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

Wenn das mal kein Zufall ist.
 
Da der Fehler ja anscheinend etwas mit der Kodierung zu tun hat, habe ich da mal nachgeguckt.

Jede Seite, die den Fehler hatte, hat ISO statt UTF-8:
Code:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

Wenn das mal kein Zufall ist.
Kein Zufall.

http://dr-vetter.com/en/index.php hat von Beginn an funktioniert:
HTML:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@JPM Wie kann es sein, dass die einzelnen Projektseiten zwei unterschiedliche Charsets besitzen?
 
Das hängt mit dem Ersteller der Website zusammen, von dem ich das Projekt jetzt übernommen habe. Der hatte bei diesem Formular einen Konflikt mit ISO und UTF-8 gehabt. Und anstatt decode und encode zu benutzen, hat er dann die Seiten in ISO definiert. Ich bin mir noch nicht sicher, wie ich es mache. Ob ich jetzt jeden einzelnen Schritt durchgehe um sicher zu stellen, dass an den richtigen Stellen decoded und encoded wird oder ob ich die gesamte Seite gleich von vorne aufsetze (was dann jedoch probleme mit Google bringen wird).

Wie dem auch sei, habe inzwischen Feierabend gemacht. Das Problem besteht teilweise noch, aber habe den ausschlaggebenden Punkt noch nicht gefunden. Aber jetzt ist auch mal Zeit für Feierabend.

Ich möchte euch beiden auf jeden Fall danken. Großartig von euch! Wenn ich kann, revanchiere ich mich mal :D

Lieben Gruß
 
Zurück
Oben