| Autor | Zpráva | ||
|---|---|---|---|
| Legáček Profil |
#1 · Zasláno: 1. 8. 2012, 07:06:27
Zdravím,
chtěl bych se zeptat jestli by se nenašla nějaká dobrá duše co by mi poradila s tímto problémem. Pomocí ajaxu, načítám záznamy z databáze do textarea - funguje to všech prohlížečích krom IE, který dosta null hodnotu a tím pádem mi do textarea nic nevloží. function vypisText(server, soubor, jazyk, kategorie){
var date = new Date();
if(XMLHttpRequestObjekt){
XMLHttpRequestObjekt.onreadystatechange = function()
{
if (XMLHttpRequestObjekt.readyState == 4 && XMLHttpRequestObjekt.status == 200){
tinyMCE.getInstanceById('textarea').setContent('');
tinyMCE.execCommand('mceInsertContent', false, XMLHttpRequestObjekt.responseText);
document.getElementById('zobrazit_text').innerHTML = XMLHttpRequestObjekt.responseText;
zobrazit_text(server, soubor, jazyk, kategorie);
}
}
}
XMLHttpRequestObjekt.open("GET", "model_upravit.php?server="+server+"&soubor="+soubor+"&jazyk="+jazyk+"&kategorie="+kategorie+"&date="+date.getTime(), true);
XMLHttpRequestObjekt.send(null);
}Zkoušel jsem i přidat date.getTime() i header("Cache-Control: no-cache, must-revalidate") kvůli kešování, ale nepomohlo to. Nemáte někdo nějaký nápad, jak to zprovoznit? |
||
| _es Profil |
#2 · Zasláno: 1. 8. 2012, 07:39:35
Legáček:
„načítám záznamy z databáze do textarea“ Na úpravu textu v textarea sa používa jej vlastnosť value. Premenná XMLHttpRequestObjekt by mala byť definovaná vo vo funkcii vypisText.
|
||
| Legáček Profil |
#3 · Zasláno: 1. 8. 2012, 11:24:52
_es:
I když jsem vložil var XMLHttpRequestObjekt = false;
if (window.XMLHttpRequest){
XMLHttpRequestObjekt = new XMLHttpRequest();
} else if (window.ActiveXObject){
XMLHttpRequestObjekt = new ActiveXObject("Microsoft.XMLHTTP");
}vypisText, tak to nemohlo.
Ta textarea není vlastně obyčejná area, protože je to tiny-mce. Do ní by se měl text dostat právě tímto příkazem - tinyMCE.execCommand('mceInsertContent', false, XMLHttpRequestObjekt.responseText);, protože normálně přes hodnotu value to nefunguje.
|
||
| Martin Adámek Profil |
#4 · Zasláno: 1. 8. 2012, 12:01:31
Jestli to ve všem kromě IE funguje, tak zkus vložit znova celý element, ne jen jeho obsah.
Dělo se mi totéž u selectu, a našel jsem oficiální microsoftí popis bugu IE, že u IE není možný měnit jednotlivý položky a musí se ten select obalit divem, a pak se mění obsah divu, tzn šoupne se tam znova celej select. Třeba by to mohlo být to samé i u textarea. |
||
| _es Profil |
#5 · Zasláno: 1. 8. 2012, 12:25:18
Legáček:
„Ta textarea není vlastně obyčejná area, protože je to tiny-mce. Do ní by se měl text dostat právě tímto příkazem -“ Tak na čo tam máš použité ešte aj innerHTML? A čo robí funkcia zobrazit_text?
Možno bude chyba niekde inde, na odhalenie takých chýb je vhodná „živá“ ukážka. |
||
| Chamurappi Profil |
#6 · Zasláno: 1. 8. 2012, 15:48:03
Reaguji na Legáčka:
„funguje to všech prohlížečích krom IE, který dosta null hodnotu“ Opravdu dostává null? Zkoušel sis alertem vypsat XMLHttpRequestObjekt.responseText?
Proč nepoužiješ k nastavení nového obsahu editoru přímo ten setContent, který užíváš k mazání?
Reaguji na Martina Adámka: „Dělo se mi totéž u selectu, a našel jsem oficiální microsoftí popis bugu IE, že u IE není možný měnit jednotlivý položky“ Možné to je docela snadno, ale ne pomocí innerHTML.
„Třeba by to mohlo být to samé i u textarea.“ U té změna innerHTML nemění hodnotu. Správný postup je měnit value, ne zahodit celý element a vyrobit ho znovu přes innerHTML.
|
||
| Legáček Profil |
Chamurappi:
Ha, máš pravdu od ie se mi nevrací ani to null. Nic se mi prostě nevrací, to je ten hlavní problém - nevím proč se IE nic nevrátí z php souboru. To že vkládám do textarea text buď přes mceInsertContent nebo setContent('') je asi jedno. (Ani výměna nejde).
_es: zobrazit_text už mění jen pár obrázků. Ten innerHTML tam nemá být ...
|
||
| _es Profil |
#8 · Zasláno: 2. 8. 2012, 11:07:43
Legáček:
„Ten innerHTML tam nemá být ...“ No a ako máme vedieť, čo tam teraz má či nemá byť a je či nie je? V [#5] si bol už požiadaný o dostatok informácií, napriek tomu tu len opakuješ „nefunguje to“, z toho ti asi nikto dostatočne neporadí. Chamurappi: „Správný postup je měnit value, ne zahodit celý element a vyrobit ho znovu přes innerHTML.“ Alebo v tomto prípade na ten účel používať len metódy TinyMCE. |
||
| Legáček Profil |
Tak jsem zjistil, že je to v tom php souboru, který odesílá odpověď.
Přes tento script se v proměnné kategorie ukládá text, který je třeba "Hořčice", všechny prohlížeče ho přeloží v dobře, jen IE si ho sebere z inputu type="hidden" se špatným kódováním, proto při hledání v databázi nenajde žádný výsledek a proto mi nazpátek nepošle nic.
MySQL kódovaní v phpadmin mám v pořádku to vím. Jen nechápu, proč to kódování nefunguje zrovna u IE. |
||
| _es Profil |
#10 · Zasláno: 2. 8. 2012, 12:15:42
Legáček:
> Tak jsem zjistil, že je to v tom php souboru, který odesílá odpověď. > Přes tento script se v proměnné kategorie ukládá text, který je třeba "Hořčice", všechny prohlížeče ho přeloží v dobře, jen IE si ho sebere z inputu type="hidden" se špatným kódováním Moceš jedno cez druhé, namiesto toho, aby si dal „živú ukážku“. Tvrdil si, že ti to má dať do textarea, tak o akom inpute to píšeš? Čo je to „input so zlým kódovaním“? Kódovanie sa snáď nastavuje pre celý výstup z PHP. |
||
|
Časová prodleva: 13 let
|
|||
0