Autor Zpráva
borek
Profil
Můj problém je následující: přijde stránka kódovaná v Latin 2, má to napsáno v XML deklaraci i v meta tagu, ale web server bohužel pošle HTTP hlavičku, která říká, že je dokument v UTF-8. Tato informace dostane ve Firefoxu přednost a stránka se zobrazí špatně.

Chtěl bych vědět, zda je možné napsat GreaseMonkey skript, který by změnil kódování na Latin 2. Něco jako document.encoding = "iso-8859-2";

Díky
peta
Profil *
borek lze, nedela se to. pravdepodobne mas ale ten dokument v UTF, ne? Ze ti to editor zobrazi uplne stejne jako neUTF, to je jina vec. Mel by sis to opravit tam, kde vznika chyba, ne resit nasledky az pak zmenou kodovani.
centi
Profil
peta
Predpokladám, že borek nemá problém s vlastnými stránkami, ktoré by mohol upraviť, ale že proste navštevuje nejaké stránky, ktoré majú iné kódovanie v hlavičke dokumentu a iné kódovanie posiela hlavička servru.

borek
Skúš document.charset. Ale neskúšal som to.
borek
Profil
peta: Pokud lze, tak jak?

centi: document.charset je IE-only (co jsem se dočetl). Tan ale stránku zobrazí správně (tady jsem rád, že porušuje standard, protože autor dokumentu ví lépe, v jakém kódování je soubor, než nějaký web server), já řeším problém ve Firefoxu.
centi
Profil
borek
A skúsil si to? Pretože ja som sa zase dočítal, že práve IE document.charset nepozná :-).
centi
Profil
Ok, tak som to odskúšal a je to IE only :-)
V tom prípade ale neviem ďalej poradiť.
peta
Profil *
borek jak ses neptal :) to uz je off topic? :)
Co treba dat tagu meta IDcko a pomenit mu parametr meta?
Bez ID bych to hledal jako prvni meta, ktery ma parametr charset ruzny od ""

var i,j;j=0;
while (j<99)
{
j++;
u=document.getElementsByTagName("meta");
if (u.charset!="") {j=99;u.charset="..."}
}

Ale nemam testovano.

Stejne mi to prijde jako nesmysl, oprav si chybu u zdroje, neprepisuj nasledky chyby. To je takova ta filozofie, opravovat program v pameti. (pusti se program, pak se pusti jiny, ktery mu v pameti opravi chybu, ktera nastava, kdyz... Takze program je dal s chybou. Treba mas tam cyklus, ktery z nejakeho duvodu 1/10 pripadu nechce skoncit, protoze tam omylem prepises promennou a ty mu zvlast programem vnutis po 10s ukonceni. Ano, usnadnil jsi si praci, nemusel jsi hledat chybu, znovu kompilovat 2M program, kdyz jsi vyrobi 20k programek...)
centi
Profil
peta
Meta tag nemá žiadny atribút charset. Ak si ho lepšie pozrieš tak zbadáš, že charset je definovaný v content atribúte ako text.

<meta http-equiv="content-type" content="text/html;charset=iso-8859-2">
peta
Profil *
centi
To je mozny, rikam, ze takove veci ja nedelam :) Tak sledovat content.
borek
Profil
peta: Podle HTML specifikace musí dát prohlížeč přednost HTTP hlavičce před XML deklarací i meta tagem (ano, je to postavené na hlavu, ale to některé standardy bývají), takže přes meta tag by to nemělo fungovat.

Radu "odstranit chybu u zdroje" jsem dostal i jinde, nevím, proč mají tvůrci webů utkvělou představu, že u libovolné stránky z netu mám přístup ke "zdroji". Nebo jsem snad někde psal, že tento problém je na nějaké mé stránce?
Fred
Profil
O jakou stránku se jedná?
Fred
Profil
A ještě dotaz, co myslíš tím "přijde stránka" ? Kam přijde do iframu, do framu, do XMLHttpRequestu?
borek
Profil
Frede, promiň, ale nechci tvoje otázky řešit. Už jsem to v jiné diskuzi zkusil, takže vím, že to k ničemu konstruktivnímu nevede. Jen jsem chtěl zjistit, jestli v JavaScriptu neexistuje nějaká funkce pro změnu kódování aktuálně načtené stránky. Změny na serveru nebo problémy s konkrétní stránkou jsou off topic.
japlavaren
Profil
no, upravovat veci cez js nejde, ale cez php ide!!
Fred
Profil
Frede, promiň, ale nechci tvoje otázky řešit. To nemusíš, jsou docela jednoduché, stačí odpovědět.
borek
Profil
OK, jedná se o neveřejnou administrační stránku systému Moodle. "Přijde stránka" jako že klepnu na odkaz a načte se stránka (žádný iframe, frame, xmlhttp...). Ale podle toho, co říkaj ostatní, to asi JS řešit nejde.
Fred
Profil
Hm to těžko, podívej se kdyžtak sem http://slayeroffice.com/?c=/content/tools/headerViewer.html v druhým komentáři je odkaz na zdroj toho co to dělá v php, ale nevím.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0