zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden AJAX und Zeichenkonvertierung

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 24.06.2006, 13:57
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 24.06.2006
Beiträge: 7
gswkaiser befindet sich auf einem aufstrebenden Ast
Standard AJAX und Zeichenkonvertierung

Ich habe den Online-Shop "olCommerce" (ein xtCommerce/osCommerce-Spin-Off), komplett "AJAXifiziert", was zu 99,9% auch fertig ist, und funktioniert.

Ich habe allerdings ein Problem mit der Zeichenkonvertierung und AJAX.

Da der vorliegende Shop (mit Hilfe von "Smarty") die einzelnen zu ändernden Bildschirmbereiche schon fertig als HTML aufbereitet liefert, packe ich in meinem (selbst entwickelten) AJAX-Framework den HTML-Code (mit document.getElementById("xxxxxx").innerHTML=HTML-Text) direkt in den entsprechenden Bereich.

Das funktioniert auch alles prima, nur habe ich 2 Probleme:

die Sonderzeichen werden (egal welchen "charset" ich wähle) nicht umgewandelt vielmehr wird die entsprechende HTML-Entity (z.B. &copy einfach als Text dargestellt.

Ich habe mir mittlerweile entsprechende Code-Konvertierungsroutinen selbst geschrieben, damit das vernünftig aussieht. Allerdings scheitert das bei Zeichen, die nicht zum normalen Zeichenvorrat gehören (z.B. ndash (&ndash).

Beispiel:



Der Preis in der linken Bildhälfte wird beim 1. Laden der Seite ohne AJAX übertragen, das "ndash" wird richtig dargestellt. In der rechten Bildhälfte befindet sich Information, die per AJAX übertragen wurde, und da wird einfach der Text "ndash" dargestellt!

Ich habe das Internet schon abgesucht, ob diesbezüglich etwas bekannt ist, habe aber nichts gefunden.

Hat da jemand eine Idee????

Was übrigens auch nicht funktioniert, ist die Ausführung von Inline-Javascripts in solchen HTML-Seiten.
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 29.06.2006, 22:20
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.03.2004
Beiträge: 1.838
RoToRa wird schon bald berühmt werden
Standard

HTML-Charakter-Entities haben mit der Zeichenkodierung nichts zu tun. HTML-Charakter-Entities sind ein reines HTML(-Parser)-Feature. Sofern du deine Texte nicht mit innerHTML in die Seite einfügst, so daß der Text durch den HTML-Parser läuft, darfst du in einer JavaScript/DOM-Anwendung keine Entities verwenden, sondern musst eben die "echten" Zeichen benutzen.

Und nebenbei, da wohl der Shop von einer möglich größen Zielgruppe erreichen soll: Dir ist bewusst das nicht jeder JavaScript benutzen kann oder will? Kann der Shop wirklich auf (geschätzt) 10% des Umsatzes verzichten?

Robin
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 30.06.2006, 08:56
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 24.06.2006
Beiträge: 7
gswkaiser befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von RoToRa
Sofern du deine Texte nicht mit innerHTML in die Seite einfügst, so daß der Text durch den HTML-Parser läuft, darfst du in einer JavaScript/DOM-Anwendung keine Entities verwenden, sondern musst eben die "echten" Zeichen benutzen.
Robin
Der Text w i r d mit "innerHTML" in das DOM geschrieben, aber es funktioniert trotzdem nicht.

Ich verwende auch normalerweise die "echten" Zeichen, nur bei solchen Sonder-Zeichen wie "ndash" oder "copy" usw. hat man damit Probleme, weil es dafür keine "echten" Zeichen gibt.

Zitat:
Zitat von RoToRa
Und nebenbei, da wohl der Shop von einer möglich größen Zielgruppe erreichen soll: Dir ist bewusst das nicht jeder JavaScript benutzen kann oder will? Kann der Shop wirklich auf (geschätzt) 10% des Umsatzes verzichten?
Ist schon klar, aber der Shop hat natürlich einen Rückfallmodus!

Wenn kein Javascript im Browser aktiviert ist, läuft er einfach konventionell wie bisher. Der Anwender merkt das nur dadurch, dass er darauf hingewiesen wird, doch Javascript zu aktivieren, und dass beim Seitenload der Bildschirm immer erst einmal gelöscht wird.

Aber die "Javascript"-Verweigerer werden jetzt sowieso echte Probleme bekommen. Da alle "großen" Sites (Microsoft, Google, Yahoo, IBM) derzeit alles AJAX-ifizieren, was sich nicht wehrt, wird man ohne Javascript sehr bald nur noch ein sehr reduziertes Surf-Erlebnis haben.
Mit Zitat antworten
  #4 (permalink)  
Alt 30.06.2006, 11:21
Benutzerbild von netspy
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 13.08.2004
Ort: Leipzig
Beiträge: 1.953
netspy sorgt für eine eindrucksvolle Atmosphärenetspy sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von gswkaiser
Ich verwende auch normalerweise die "echten" Zeichen, nur bei solchen Sonder-Zeichen wie "ndash" oder "copy" usw. hat man damit Probleme, weil es dafür keine "echten" Zeichen gibt.
Was ist denn das, was dir dein Browser bei – ausgibt - ein unechtes Zeichen?
__________________
AppDev Blog · AppDev Forum

Geändert von netspy (01.07.2006 um 01:35 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 30.06.2006, 22:02
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.03.2004
Beiträge: 1.838
RoToRa wird schon bald berühmt werden
Standard

Zitat:
Zitat von gswkaiser
Der Text w i r d mit "innerHTML" in das DOM geschrieben, aber es funktioniert trotzdem nicht.
Hmm, ich habe es gerade mal probiert und innerHTML interpretiert Entities richtig. Bist Du sicher das da nicht ausversehen – drin steht? Wobei in XML natürlich – stehen muss, nur wenn es dann per DOM ausgelesen wird, sollte im JavaScript-String – stehen. Oder benutzt du XML gar nicht und liest den responseText aus? Dann musst Du natürlich die Umwandlung (& -> &) selbst machen oder halt serverseitoig drauf achten, dass in dem Fall halt – und nicht – drin steht.

Zitat:
Ich verwende auch normalerweise die "echten" Zeichen, nur bei solchen Sonder-Zeichen wie "ndash" oder "copy" usw. hat man damit Probleme, weil es dafür keine "echten" Zeichen gibt.
Nun, es kommt auf den Zeichensatz an. In UTF-8 gibt es sie natürlich.

Zitat:
Ist schon klar, aber der Shop hat natürlich einen Rückfallmodus!
Sehr gut. Danke!

Robin
Mit Zitat antworten
  #6 (permalink)  
Alt 01.07.2006, 08:48
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 24.06.2006
Beiträge: 7
gswkaiser befindet sich auf einem aufstrebenden Ast
Standard

Hallo Robin,

Zitat:
Zitat von RoToRa
Bist Du sicher das da nicht ausversehen – drin steht?
Ja.

Zitat:
Oder benutzt du XML gar nicht und liest den responseText aus? Dann musst Du natürlich die Umwandlung (& -> &) selbst machen oder halt serverseitoig drauf achten, dass in dem Fall halt – und nicht – drin steht.
Ich verwende "responseText", da ich eine existierende Anwendung AJAX-ifiziert habe, die mir schon den kompletten HTML-Code ber DOM-Bereiche liefert.

Auf der Serverseite wandle ich alle Sonderzeichen in ihr "&xxx;"-Äquivalent um ("&" wird n i c h t als "&" konvertiert), und in meinem AJAX-Framework auf der Client-Seite wieder in die "echten" Zeichen. Das funktioniert bei den Umlauten usw. auch prima. Ich weiss aber z.B. nicht, welches Zeichen ich z.B. "–" als echtes Zeichen zuweisen müsste.

Robin[/QUOTE]
Mit Zitat antworten
  #7 (permalink)  
Alt 01.07.2006, 12:57
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.03.2004
Beiträge: 1.838
RoToRa wird schon bald berühmt werden
Standard

Tja, dann fällt mir nix ein. Der Browser sollte ä und – nicht anders handhaben. Da bleibt nur "Hardcore-Debuggen"... Lass mal ein String, das ein Umlaut und ein N-Dash enthält, per alert ausgeben.

Zitat:
Zitat von gswkaiser
Ich weiss aber z.B. nicht, welches Zeichen ich z.B. "–" als echtes Zeichen zuweisen müsste.
Der "EN DASH" is (hex) 2013 in Unicode.

Robin

Geändert von RoToRa (01.07.2006 um 13:00 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 02.07.2006, 08:27
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 24.06.2006
Beiträge: 7
gswkaiser befindet sich auf einem aufstrebenden Ast
Standard

Es wurde doch "–" übertragen ....

Jetzt funktioniert das.

Gut, dass wir drüber geredet haben...
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ajax - Datenbanksbruf: ASP Datei mit PHP code füllen? braindead Javascript & Ajax 3 19.10.2009 14:35
Jquery AJAX Aufruf und Tablesorter MoFu Javascript & Ajax 2 18.09.2009 10:09
Ajax und InternetExplorer M@tes Javascript & Ajax 1 28.05.2009 18:45
Ajax ReadyState 3 kevink Javascript & Ajax 2 30.04.2007 17:19
Buchrezension: AJAX - Frische Ansätze für das Webdesign Flocke Ressourcen 2 01.11.2005 23:08


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:26 Uhr.