URL: https://www.overclockers.at/coding-stuff/javascript_json_lesen_216704/page_2 - zur Vollversion wechseln!
Doh! I c, damn. Stell mir das nicht so flüssig vor zu prototypen mit JSP wenn du einen JS Client Fehler suchst .. kannst nicht zum testen das ganze HTML File einfach wo statisch ablegen und rumschieben/testen der Elemente ohne JSP im Hintergrund, maximal noch die Ressourcen von Tomcat referenzieren?
Pfoah ich hasse JavaScript! Ein paar Mal hab ich jetzt Project gecleaned, WD des Tomcat gelöscht, ein bisschen die Skript-Tags herumgeschoben und auf einmal läufts wieder
Der alert() im document.ready ist nicht gekommen, weil eine fehlerhafte Abfrage dazwischen war.
Im Prinzip bin ich wieder glücklich, außer dass der NoGray Calendar nicht angezeigt wird, obwohl ich ihn 1:1 (nur mit anderem Namen) wie im Beispiel eingebunden hab
Ich glaub den Link auf deinen Desktop willst nicht im Post haben.
Sorry, falschen Tab erwischt. Habs editiert.
//Ich seh schon, warum der Calendar nicht geht... Konstruktor wird fehlerhaft aufgerufen.
MooTools und jQuery sind kollidiert, deswegen kein Kalenderkonstruktor.
Waaaaaaa, dreckszeug! Afaik kannst du jQuery so konfigurieren das es nicht kollidiert (also das es "$" nicht überschreibt); na, trotzdem ärgerlich.
Jo, das hat lustigerweise gleich funktioniert (im Gegensatz zu allem anderen ).
Code:var $j = jQuery.noConflict(); $j(document).ready(...)
Läuft nicht (auch ohne blanks):Code:var us_holidays = [{date:1, month:0}, {date:"3rd Monday", month:0}, {date:"3rd Monday", month:1}, {date:"last Monday", month:4}, {date:4, month:6}, {date:"1st Monday", month:8}, {date:"2nd Monday", month:9}, {date:11, month:10}, {date:"4th Thursday", month:10}, {date:25, month:11}];
Code:var notSelectableDates = [{date:24, month:5},{date:25, month:5},{date:26, month:5}];
Ich versteh deine JSON-Selektoren ehrlich gesagt nicht... Ich nehm an du beskommst die Daten über eine AJA"X"-Abfrage. Injizierst du dann das JSON ins DOM und selektierst es nacher? Wenn ja, wieso? Du könntest es doch gleich weiterverarbeiten...
Die Daten kommen aus einem Servlet, eine andere Art des Datenaustauschs zwischen Java und JavaScript ohne Applet ist mir nicht eingefallen.
Also:
Java sammelt Daten, formatiert sie in JSON, schreibt sie ins DOM, JavaScript liest entsprechendes DOM-Objekt, wandelt JSON um und verwendet es.
Ah ok. Ich weiß nicht ob es möglich ist mit der Architektur Daten roh (ohne jegliche Header und HTML) auszugeben. Wenn ja könntest du das ganze wie gesagt mit einem AJAX-Zugriff auf eine Seite, die nur deine JSON-Daten ausgibt lösen
http://api.jquery.com/jQuery.ajax/
http://api.jquery.com/jQuery.getJSON/
Du würdest die Daten dann auch als ordentliches JSON im Script haben. Andernfalls würde ich mal schauen, ob du wirklich valides JSON zurückbekommst - vielleicht gibts Probleme beim Encoding (könnte aber auch bei der anderen Lösung passieren), oder Zeilenumbrüche o.ä. passen nicht.
P.S.: AJAX macht natürlich nur Sinn, falls die Daten beim Seitenaufruf noch nicht zur Verfügung stehen. Wenn du aber schon weißt, was für Daten benötigt werden, dann würde ich den betreffenden Teil des Scripts dynamisch erstellen.
Ich finds ja auch nicht schön Allerdings wäre ich zufrieden, wenn ich die JSON Daten unsichtbar ins DOM bekäme, sodass sie keinen Impact aufs Layout haben. Ich hätte ja hidden Inputs genommen, aber da schlägt sich die value mit den double quotes.
Die Daten sind beim Seitenaufruf vorhanden, sie werden ja direkt in der HTML Seite an den Client geliefert. Leider weiß ich grad nicht, was du mit "den betreffenden Teil des Scripts dynamisch erstellen" meinst :/
Wenn du die Daten schon zur Verfügung hast, dann kannst du ja JS genauso wie HTML serverseitig dynamisch erstellen lassen.
Eine einfache Möglichkeit ist, an der passenden Stelle im Header (dort, alle relevanten Dinge bereits initialisiert sind, aber noch vor dem Verarbeiten der Daten) einfach deine JS-Variablen in <script>-Tags zu packen und ihnen die benötigten JSON-Daten zuzuweisen.
Die Idee ist, dass JS-Daten im JS bleiben, das DOM (oder zumindest der body) unangetastet bleibt und du dich nicht mit Dingen wie Sonderzeichen herumärgern musst.
Soweit ich verstanden habe macht er das eh genau so .. aber vielleicht falsch interpretiert. Bin ja schon gespannt was Sache ist
Hm, das ist an sich eine gute Idee... Dass ich JS Code auch dynamisch erstellen kann ist mir nicht eingefallen :/
Ich müsste jetzt halt den ganzen Code aus den .js Dateien wieder zurück in <script> Tags in meinen Header transferieren, damit ich mit den Variablen auch arbeiten kann, oder?
Nein, die verschiedenen JS-Scripten werden sowieso zusammengewürfelt (du musst ja z.B. jQuery auch nur einmal includen und kannst es dann überall verwenden). Es sollte reichen, wenn du wirklich nur die Variablen in die <script>-Tags packst (wie gesagt aufpassen, dass sie nachher nicht überschrieben oder vorher schon benötigt werden.)
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025