erzwungenes Leerzeichen anzeigen im FireFox
andynail
- html
Hallo zusammen
ich übergebe per Link-Adresse in eine aufgerufene Seite den Text aus diesem die Seite geöffnet wurde. Und wenn ich jetzt zb. "Visual Basic" übergebe, hatte ich dafür bereits in die Datenbank "Visual Basic" eingefügt. Der Link der die Seite aufruft wird auch aus der Datenbank ausgelesen und hier zeigt der Text auch "Visual Basic"
Jetzt wird die Seite Aufgerufen und diese soll per JS den Wert table auslesen und in ein div Objekt einfügen. Jedoch zeigt der Text dann aber im FireFox "Visual%A0Basic", also nicht wie im IE der das Leerzeichen anzeigt.
Also wie benötigt der Firefox damit der Text mit Leerzeichen angezeigt wird?
Danke bereits im Voraus
Gruß Andreas
@@andynail:
nuqneH
hatte ich dafür bereits in die Datenbank "Visual Basic" eingefügt.
In der DB sollten keine HTML-Escapes stehen (also nicht ' '), sondern die richtigen Zeichen: 'Visual Basic'. (Das ' ' ist U+00A0 no-break space.)
Jedoch zeigt der Text dann aber im FireFox "Visual%A0Basic"
Welche Zeichencdierung erwartet der Server? ISO 8859-1?
Oder UTF-8? Dann muss es URI-escapet 'Visual%C2%A0Basic' heißen.
also nicht wie im IE der das Leerzeichen anzeigt.
Die Anzeige in der Adressleiste des Browsers ist zweitrangig.
Also wie benötigt der Firefox damit der Text mit Leerzeichen angezeigt wird?
Warum benötigst du überhaubt ein no-break space? Warum kein normales Leerzeichen ' ' U+0020? 'Visual Basic'. Das wäre dann sowohl nach ISO 8859-1 als auch nach UTF-8 escapet 'Visual%20Basic'.
Qapla'
Hallo
es geht darum das über ein Menü Seiten in einem Iframe aufgerufen werden und diese dann auch an anderer Stelle der Seite ihren Namen anzeigen sollen. Und die Menüeinträge werden aus einer Datenbank heraus erstellt.
Und jetzt dachte ich mir ich würde eine Seite mit einem Parameter in der Adresse "?name=Visual Basic" aufrufen und per JavaScript soll dies ausgelesen und angezeigt werden.
Beim Server handelt es sich um Server2Go und ich weis nicht welche Kokierung er verwendet. Es handelt sich hierbei um eine sqlite Datenbank und ich lasse mir einfach Einträge per sql Abfrage anzeigen, und diese werden dann auch in beiden Browsern mit Sonderzeichen angezeigt. Jedoch nicht mit meiner Javascript Funktion.
Danke gruß Andreas
@@andynail:
nuqneH
es geht darum das über ein Menü Seiten in einem Iframe aufgerufen werden und diese dann auch an anderer Stelle der Seite ihren Namen anzeigen sollen.
Das beantwortet nicht meine Fragen. Also nochmal:
1. Warum ein no-break space zwischen 'Visual' und 'Basic'?
2. Warum nicht als Zeichen (U+00A0), sondern als Zeichen-Entity-Referenz (' 
') in der DB?
Und jetzt dachte ich mir ich würde eine Seite mit einem Parameter in der Adresse "?name=Visual Basic" aufrufen und per JavaScript soll dies ausgelesen und angezeigt werden.
Warum per JavaScript? Warum nicht serverseitig?
Jedoch nicht mit meiner Javascript Funktion.
Die da wäre? Die Tips für Fragende hast du gelesen?
Qapla'
PS: Ich wittere eine XSS-Sicherheitsl¨cke.
@@Gunnar Bittersmann:
nuqneH
Zeichen-Entity-Referenz ('
 
')
Hab ich das gerade geschrieben? Wie peinlich.
Sollte heißen:
2. Warum nicht als Zeichen (U+00A0), sondern als numerische Zeichenreferenz (' 
') in der DB?
Qapla'
Hallo
es funktioniert nix mit 'BereichU+00A0Links', denn das wird so angezeigt. Und per Javascript kann ich bei Aufruf der Seite von dieser aus die Funktion starten die dann schreibt
var Start = Parameter.search(/table=/) + 1
var DBTable = Parameter.substring(Start, Parameter.length)
var Ende = DBTable.search(/&/)
DBTable = DBTable.substring(5, Ende + ((Ende<0)*DBTable.length))
top.document.getElementById('Kennung').innerHTML = DBTable
Und ich denke doch das in einer Adrese kein leerzeichen drinstehen darf.
Gruß Andreas
@@andynail:
nuqneH
es funktioniert nix mit 'BereichU+00A0Links', denn das wird so angezeigt.
Du solltest auch nicht "U+00A0" reinschreiben, sondern U+00A0 ;-) also das Zeichen ' '.
Wenn es denn ein U+00A0 no-break space sein soll. Die Frage nach dem Warum hast du nicht beantwortet.
Und ich denke doch das in einer Adrese kein leerzeichen drinstehen darf.
Du meinst in einem URI darf kein ' ' U+0020 space vorkommen, richtig. Ein solches muss als '%20' prozent-escapet werden.
Ein ' ' U+00A0 no-break space muss auch prozent-escapet werden, nur halt je nach Zeichencodierung unterschiedlich.
Qapla'
Hallo
ich will nicht noch eine Funktion aufrufen die dann Kennung.innerHTML = this.innerHTML ausführt. Denn was der Menüeintrag anzeigt soll auch gleichzeitig der Name der Tabelle werden aus dieser dann der Inhalt im iframe erstellt wird. Und es soll auch möglich sein beim nächsten Aufruf der Webseite durch Cookies wieder zum zuletzt aufgerufenen Inhalt zurückkehren zu können. Es soll ja möglich sein Leerzeichen zu verwenden. Man müsse dann in der sql Abfrage nur den Namen in Anführungszeichen setzen. Und damit alles drumherum angepasst wird verwende ich Javascript Funktionen wie diese der gezeigten Zeilen.
Gruß Andreas
@@andynail:
nuqneH
ich will nicht noch […]
Du willst vielleicht mal dein Problem beschreiben. Und zwar nachvollziehbar.
Und auf die Rückfragen antworten.
Gehe zurück in die Badstraße.
Qapla'
Hallo
ok ich denke das ich nun das Problem kenne. Denn ich lase ja die Menü Elemente per php aufbauen und darin werden auch die Links zu den Seiten erstellt. Und damit wird es mit Leerzeichen erstellt. Und einen Link mit Leerzeichen stellt der firefox mit %20 dar.
Bitte um Hilfe Danke Gruß Andreas
@@andynail:
nuqneH
ok ich denke das ich nun das Problem kenne.
Schön für dich. Ich kenne es nicht.
Und einen Link mit Leerzeichen stellt der firefox mit %20 dar.
Und was ist das Problem?
Bitte um Hilfe
Wobei?
Qapla'
Hallo
ein Link sieht dann so aus:
Seite.html?b=2&db=Hobby&Table=Visual Basic&sort&Datum desc
oder
Seite.html?b=6&db=Sonstiges&Table=Telefonbücher&Datum desc
und wie gehe ich jetzt mit den Sonderzeichen - Leerzeichen um?
Danke gruß Andreas
Hi,
ein Link sieht dann so aus:
Seite.html?b=2&db=Hobby&Table=Visual Basic&sort&Datum desc
nein, das darf er nicht.
Seite.html?b=6&db=Sonstiges&Table=Telefonbücher&Datum desc
Auch nicht.
und wie gehe ich jetzt mit den Sonderzeichen - Leerzeichen um?
Sie müssen kontextgerecht codiert werden - im URL-Kontext gilt "Percent Encoding". Übrigens nicht nur Leerzeichen, sondern auch alle Nicht-ASCII-Zeichen sowie alle, die im URL-Kontext sonst eine besondere Bedeutung haben ('?', '&', '=', '%').
Ciao,
Martin
Hallo zusammen
mit urlencode funktionierts jetzt einwandfrei.
Vielen Dank dafür
Gruß Andreas
ein Link sieht dann so aus:
Seite.html?b=2&db=Hobby&Table=Visual Basic&sort&Datum desc
Das ist kein Link.
Das ist möglicherweise eine IRI in einem href Attribut eines HTML-Links.
IRIs werden noch nicht überall unterstützt. Also Konvertiere IRIs zu URIs.
Seite.html?b=6&db=Sonstiges&Table=Telefonbücher&Datum desc
und wie gehe ich jetzt mit den Sonderzeichen - Leerzeichen um?
Indem du Percent-Endoding, also urlencode() anwendest, Wenn du beliebigen Text zu URIs zusammenbaust.
PS: Deine ganze Kommunikation ist ineffizient, was an deinem verfehlten Vokabular und fehlenden konkreten Daten sowie Kontext-Hinweisen liegt.
Du willst das ändern, wenn du eine zielführendere Beratung wünscht.
mfg Beat