Portál AbcLinuxu, 14. května 2024 03:23


Dotaz: Web: JavaScript a responseXML: Firefox 28 vs. 29

xkucf03 avatar 12.8.2014 17:22 xkucf03 | skóre: 49 | blog: xkucf03
Web: JavaScript a responseXML: Firefox 28 vs. 29
Přečteno: 259×
Odpovědět | Admin

Mám JavaSctipt na www stránce a přes AJAX odesílám data a zpracovávám výsledek.

Problém je, že při přechodu z Firefoxu 28 na 291 to přestalo fungovat. Ale v prohlížečích s Webkitem (zkoušel jsem rekonq, Chromium) to v pohodě funguje pořád.

Zkoušel jsem to ladit v debuggeru ve Firefoxu (i Firebugem), ale když jsem to krokoval, tak jsem se ničeho nedobral – prostě to skončí na řádku, kde přiřazuji a.responseXML do proměnné.

To a se vezme tady:

var a = new XMLHttpRequest();

pak se dělá

a.open("POST", url, true);

A k responseXML se přistupuje v callback funkci navázané na onreadystatechange.

Napadá někoho, co s tím? Proč to funguje ve starém FF, rekonqu a Chromiu, ale v novém FF už ne?

[1] schválně jsem teď stahoval staré verze Firefoxu, abych zjistil, kdy se to stalo

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.8.2014 17:42 Logik
Rozbalit Rozbalit vše Re: Web: JavaScript a responseXML: Firefox 28 vs. 29
Odpovědět | | Sbalit | Link | Blokovat | Admin
Bez kompletního kódu se radí těžko. Nejlíp udělej nějakou veřejnou www stránku, kde vystavíš minimální "chybnej" kód.
xkucf03 avatar 12.8.2014 17:44 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Web: JavaScript a responseXML: Firefox 28 vs. 29

Konkrétně jde o komentáře na mém blogu (stačí si nechat zobrazit náhled komentáře, ani to totiž v novém FF nefunguje).

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
12.8.2014 18:24 Logik
Rozbalit Rozbalit vše Re: Web: JavaScript a responseXML: Firefox 28 vs. 29
Ve firefoxu 31 se funkce funkceUspech normálně volá, akorát nedělá to, co by měla. Asi hledáš problém jinde než ve skutečnosti je....

Problém asi bude tady: http://www.subbu.org/blog/2006/04/ajax-and-getelementbyid
xkucf03 avatar 12.8.2014 18:44 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Web: JavaScript a responseXML: Firefox 28 vs. 29

Možná to tím je, ale je divné, že se mi krokování zasekne už při pokusu o přiřazení responseXML do proměnné.

A taky je divné, že to nefunguje, i když tu odpověď ze serveru posílám jako application/xhtml+xml a je to ve jmenném prostoru xmlns="http://www.w3.org/1999/xhtml" a v tom článku píší:

Currently browsers are not schema/DTD aware for XMLHttpRequests, although they support well-known DTDs like HTML and XHTML for documents.

Tak že by pro Firefox bylo

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">

do verze 28 „well-known DTD“ a pak už ne?

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
12.8.2014 18:59 Logik
Rozbalit Rozbalit vše Re: Web: JavaScript a responseXML: Firefox 28 vs. 29
Přijmi to jako text/html a máš imho v tomdle po problému :-)

Když se to zasekne, je něco v konzoli? Mělo by bejt... Jinak já když dám breakpoint na řádku 59, tak se to na ní po náhledu komentáře normálně zastaví. Zkus dokrokovat kam až můžeš a pak si ty samý příkazy zkusit spustit ve firebugový konzoli (nebo v něčem ekvivalentnim).

12.8.2014 18:19 Filip Jirsák
Rozbalit Rozbalit vše Re: Web: JavaScript a responseXML: Firefox 28 vs. 29
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mně to pod Firefoxem 30 pod Windows funguje… Pokud to na tom řádku „skončí“, znamená to, že došlo k výjimce – měla by být buď na konzoli, nebo jí zkus zachytit a vypsat si jí.
xkucf03 avatar 12.8.2014 18:34 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Web: JavaScript a responseXML: Firefox 28 vs. 29
Příloha:

Do konsole jsem už koukal, výjimka 1 vyskočí, ale moc mi to nepomohlo.

[1] viz řádek „Got an axception…“ v příloze ten vyskočil, když jsem dokrokoval na řádek s a.responseXML

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
12.8.2014 18:19 Marek
Rozbalit Rozbalit vše Re: Web: JavaScript a responseXML: Firefox 28 vs. 29
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nechýba ti a.send();?

Viď AJAX - Send a Request To a Server

xkucf03 avatar 12.8.2014 18:36 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Web: JavaScript a responseXML: Firefox 28 vs. 29

Ten tam je (na řádku 38), na server se to odešle, ale problém je se zpracováním odpovědi v prohlížeči.

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
Řešení 1× (xkucf03 (tazatel))
12.8.2014 18:43 chrono
Rozbalit Rozbalit vše Re: Web: JavaScript a responseXML: Firefox 28 vs. 29
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nie je problém s document.importNode(odpověďElement);? (možno by tam mal byť použitý aj parameter deep, pretože teraz to kopíruje len ten <div id="obsah"> element).
xkucf03 avatar 12.8.2014 19:21 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Web: JavaScript a responseXML: Firefox 28 vs. 29
Dík moc! Tím to bylo, už to zase chodí i ve Firefoxu :-)
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.