Javascript névtér gondok
Sziasztok!
Próbáltam beüzemelni a getElementsByTagNameNS függvényt, de nem sok sikerrel jártam, úgyhogy rákerestem neten egy példára, és az sem működött, most nem értem, hogy akkor maga a függvény a rossz, vagy én rontok el valamit?érdekessége a dolognak, hogyha a namespacet is beleveszem a tagnamebe és úgy keresek rá, akkor megtalálja az adott elemet... nyilván nekem ez nagyon nem jó, mert namespace alapján szeretnék feldolgozni elemeket a tagname pedig tetszőleges lesz...
ja kérdés:
mégis hogy lehet működésre bírni?
■ Próbáltam beüzemelni a getElementsByTagNameNS függvényt, de nem sok sikerrel jártam, úgyhogy rákerestem neten egy példára, és az sem működött, most nem értem, hogy akkor maga a függvény a rossz, vagy én rontok el valamit?
- <!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <?xml version="1.0" encoding="utf-8"?>
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
- xmlns:action="http://www.xyz.com/actions/">
- <head>
- <script>
- function init()
- {
- var a=document.getElementsByTagNameNS("http://www.xyz.com/actions/","*");
- alert(a.length)
- for (var i=0; i<a.length; i++)
- {
- var item=a[i]
- alert(item.tagName)
- }
- var x=document.getElementsByTagName("action:preloadimg")
- alert(x[0])
- /*
- alert(x.namespaceURI)
- alert(x.prefix)*/
- }
- </script>
- </head>
- <body onload="init()">
- <action:preloadimg autostart="true">
- <img id="aaa" src="a.jpg" />
- <img src="b.jpg" />
- </action:preloadimg>
- </body>
- </html>
ja kérdés:
mégis hogy lehet működésre bírni?
Esetleg dtd gond
tákoltam gyorsan egy tesztet:
IE megoldás
ie-ben megtaláltam a megoldást, az alábbi sorral kell kiegészíteni a kódot:
szóval most egy olyan megoldást keresek, ami mindkét böngészőben működik, meg esetleg a harmadikban is (safari)
eddig úgy néz ki, hogy névtér csak xml-ben van mindenhol, és valahogy az xmlt kéne úgy behozni a htmlbe, hogy attól még maga az oldal text/htmlként legyen értelmezve.
bármi ötlet?
Csak kérdezem...
Igaz
Egyébként ma nagyon kiverte nálam a biztosítékot az a böngésző, mert lemondtam erről a html-névtér dologról, viszont xml-ben szeretném használni ugyanezt, ahol azért már logikusan működnie kéne.
Na ieben nincs névtér az xml objectben, mert csak dom1-et támogat az xml parsere, ami azért külön érdekes, mert az előbb leírt módon még htmlben is el lehet érni benne a névterezést.. Akkor most hogy is van ez? Úgy igazából nem ez volt, ami felhúzott, hanem próbáltam lekérni egy gyerek node tulajdonságait for-in-nel, aztán hibaüzenetet kaptam, hogy azt a szutykot nem lehet for-inezni, mert nem támogatja. Na szal eléggé felhúzott, hogy hogy lehet ekkora szemetet piacra dobni, meg böngészőnek eladni. :S
Valahogy összegányolom majd, hogy lehessen xml-ben névterezni, meg egyáltalán alapvető dolgokat megoldani, de elég érdekes volt már az is, amíg megtaláltam az adott object leírását az msdn.microsoft.com-on.... Aztán az meg külön vicc, hogy a leírásban persze benne van a prefix... Még annyi az ötletem, hogy elavult activeXObjectet hívhattam meg, olyat, amiben még nincs prefix, de ez már holnapra marad. Egyszerűen 2 napja szenvedek ezen az alap dolgon. Idegesítő.
Szal most éppen erre próbálok valami teszt parsert írni, az eszközök megvannak, csak megint nagyon sok a böngészők közti eltérés. Reménykedve várom az ie8at, azt mondják ott már odafigyelnek a szabványokra.
És ha, ...
CSS?
ehhez mit szólsz?:
Nem jó
Utánanéztem, és XML-ben sem sokkal jobb a helyzet, ie az xmlben nem támogatja a névterezést, oda talán majd beszúrom azt a prefixes részt, hátha segít benne... Meg főleg inkább XMLben fogom használni ezt az egészet adatküldésre, és szűrésre..
Köszi, hogy segítettél.
Újabb problémák
Most úgy próbálkozom, hogy lekérem az összes tulajdonságot a document.documentElementből, és kiválasztom az xmlns:valami alakúakat, aztán ez alapján csekkolom, hogy létezik e a NS stbstb... a probléma msot ott van, hogy ie-ben nincsenek benne az attributes gyűjteményben, és getAttribute segítségével sem lehet lekérni őket..
Tudja valaki, hogy miért nem lehet lekérni ezeket, és, hogy hogyan lehetne mégis?
:-(
OuterHTML