Umlaute mit Javascript in Auswahlfelder
Guenter Klein
- javascript
0 Gunnar Bittersmann0 rob
0 Cheatah
Hallo zusammen,
ich versuche eine Auswahlliste für Länder abhängig vom gewählten Kontinent dynamisch zu erstellen.
Wenn ich die Auswahl in HTML erstelle werden die Umlaute richtig Dargestellt.
<select name="list_country" tabindex="3" onchange="javascript:makeEnglishLand()">
<option value="Albania">Albanien</option>
......
<option value="Austria">Österreich</option>
......
</select><br />
Wenn der Kontinent geändert wird, und die Einträge in Optionen mit Javascript geändert wurden, sind die Umlaute wie 'ö' als 'Ö' zu lesen.
Javascript:
//Array mit allen Laendern 3 = Europa
var lands = [
......
['3','Austria','Österreich'],
['3','Poland','Polen'],
....
];
function makeLandList(first){
var continent = "";
var i = 0;
var j=0;
continent = document.newData.Continent.value;
/* Liste leeren */
document.newData.list_country.options.length = 0;
if(first){
document.newData.en_country.value = "";
document.newData.de_country.value = "";
}
for(i=0;i<lands.length;i++){
if(lands[i][0]==continent){
new_insert = new Option(lands[i][2],lands[i][1]);
document.newData.list_country.options[document.newData.list_country.options.length] = new_insert;
if(first){
first = false;
document.newData.en_country.value = lands[i][1];
document.newData.de_country.value = lands[i][2];
}
}
}
return;
}
Besten Dank im voraus
Guenter
Hello out there!
Wenn […] die Einträge in Optionen mit Javascript geändert wurden, sind die Umlaute wie 'ö' als 'Ö' zu lesen.
Im Kontext HTML sind 'Ö' und 'Ö' äquivalent; im Kontext JavaScript nicht.
Warum schreibst du nicht einfach 'Ö' in den Quelltext? “It is almost always preferable to use an encoding that allows you to represent the characters in their normal form, rather than using character entities or NCRs.” [QA-ESCAPES]
See ya up the road,
Gunnar
Hi!
Warum schreibst du nicht einfach 'Ö' in den Quelltext? “It is almost always preferable to use an encoding that allows you to represent the characters in their normal form, rather than using character entities or NCRs.” [QA-ESCAPES]
Auch in SelfHTML ist dazu einiges zu finden.
Internationalisierung
Wenn die richtige Zeichenkodierung per Metatag angegeben wird (oder vom Server per HTTP-Header gesendet wird), dann ist es kein Problem, die Umlaute und Sonderzeichen direkt im Quelltext einzusetzen.
Damit erledigen sich dann auch die HTML/JavaScript-Probleme.
Alternativ dazu könnte man natürlich auch mit Hilfe eine JavaScript-Funktion die benannten HTML-Entities wie ö wieder zurück in Umlaute umwandeln.
Aber wenn man das tut, sollte ebenfalls wieder die verwendete Zeichenkodierung angegeben werden. Ansonsten könnte es wieder sein, daß diese Umlaute dann nicht richtig dargestellt werden.
Ohne eine Angabe zur verwendeten Zeichenkodierung muß der Client raten, worum es sich handeln könnte.
Schöner Gruß,
rob
Hi,
<select name="list_country" tabindex="3" onchange="javascript:makeEnglishLand()">
welchen Zweck hat Deiner Meinung nach der JavaScript-Code "javascript:"?
Wenn der Kontinent geändert wird, und die Einträge in Optionen mit Javascript geändert wurden, sind die Umlaute wie 'ö' als 'Ö' zu lesen.
[...]
['3','Austria','Österreich'],
JavaScript ist nicht HTML. Für JavaScript ist die Kombination aus "&", "O", "u", "m", "l" und ";" eben genau das. Ein "Ö" hingegen wird durch das Zeichen "Ö" repräsentiert.
Cheatah