Autor | Zpráva | ||
---|---|---|---|
Stanous Profil |
#1 · Zasláno: 8. 9. 2009, 09:26:55
Zdravím všechny.
Jsem tak trochu začátečník v používání JQuery. Používám většinou jen kaskádové styly a pokud možno žádné skripty. Na stránkách mám umístěné navigační menu, ale z důvodu značného množství sekcí je krajně nepraktické z důvodu aktualizací a přidávání sekcí mít menu v každé stránce. Rád bych ho osamostatnil do jediného souboru a ten pak načítal do všech ostatních stránek. Chtěl jsem použít JQuery a AJAX syntaxi .load, ale nenačítá mi to české znaky ze souboru, i když zbytek obsahu je zobrazen správně Česky. Veškeré kódování mám v Češtině windows-1250 a když ho dle některých návodů změním na utf-8, přestane mi fungovat Čeština kompletně, nejen v divu z načítaného souboru. Prosím o radu, co s tím. Předem děkuji |
||
Chamurappi Profil |
#2 · Zasláno: 8. 9. 2009, 09:34:16
Reaguji na Stanoa:
Musíš u té stahované stránky posílat kódování v HTTP hlavičce Content-Type. |
||
Stanous Profil |
#3 · Zasláno: 8. 9. 2009, 10:12:07
Díky za radu. Vyřešil jsem to nakonec tím utf-8 kódováním. Nefungovalo mi to proto, že jsem měl v editoru nastavené kódování windows-1250 a pouze jsem přepsat právě jen Content-Type a charset na utf-8. Fyzicky byl tak dokument uložený s windows-1250. Až poté, co jsem ho uložil v jiném (správném - utf-8) kódování, začala fungovat čeština správně ve všem.
|
||
Chamurappi Profil |
#4 · Zasláno: 8. 9. 2009, 10:36:13 · Upravil/a: Chamurappi
Reaguji na Stanoa:
„pouze jsem přepsat právě jen Content-Type a charset na utf-8“ Bavíme se o skutečné hlavičce Content-Type nebo o elementu <meta http-equiv="Content-Type">? Já měl na mysli skutečnou hlavičku, <meta> se při načítání pomocí XMLHttpRequestu ignoruje. Stačilo by nastavit typ „text/html; charset=windows-1250“ a nemusel bys převádět kódování. |
||
Stanous Profil |
#5 · Zasláno: 8. 9. 2009, 12:41:41
Aha, už tomu trochu rozumím, jsem vážně neprofík :-) ta skutečná hlavička je ve struktuře stránky kde? Asi to nebude mezi tagy <head> a </head>, že? počítám, že je jinde.
|
||
Stanous Profil |
#6 · Zasláno: 8. 9. 2009, 15:44:57
Tak jsem našel ještě další dvě možné řešení a obě dvě nevyžadují převedení kódování, resp. stačí převést kódování pouze u dokumentu, který loaduju a nebo ho při jeho vytváření rovnou ukládat s utf-8 kódováním. Pak se i do stránek s nastaveným windows-1250 kódováním nahraje a interpretuje správně i s diakritikou. Takto se dají do stránky nahrávat jakékoliv texty a zdrojové soubory nemusí mít příponu .html (mohou mít jakoukoliv, zkoušel jsem .txt .tpl a další i vlastní, jde jen o obsah). Vše mi takto funguje a navíc tím mám redukovanou velikost souboru o několik kB. Druhým způsobem je vložit nad definici <!DOCTYPE tento tag: <?xml version="1.0" encoding="windows-1250"?>, soubor uložit v kódování windows-1250 (stejně jako webovou stránku) a dodržet ve zdrojáku strukturu HTML zápisu. Nevím, jestli jsem to vyřešil správně a validně a budu rád za jakoukoliv připomínku.
|
||
Časová prodleva: 4 měsíce
|
|||
spex Profil * |
moznost je to take udelat takto:
<script src="http://code.jquery.com/jquery-latest.js"></script> <script> $.ajaxSetup({ 'beforeSend' : function(xhr) { xhr.overrideMimeType('text/html; charset=windows-1250'); } }); $(document).ready(function(){ $("#pripojeni").load("zdrojove.html"); }); </script> <div id="pripojeni"></div> Moderátor Chamurappi: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
Chamurappi Profil |
#8 · Zasláno: 12. 1. 2010, 15:05:54
Reaguji na spexe:
„xhr.overrideMimeType“ Tuto metodu ale nepodporují všechny prohlížeče, takže je nepoužitelná. |
||
c2ga3h Profil * |
#9 · Zasláno: 12. 1. 2010, 15:34:40
mě to funguje s hlavičkou PHP.
<?php header("Content-Type: text/html; charset=windows-1250"); ?> |
||
Časová prodleva: 14 let
|
0