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