HTML5 enabling script 2.0
Régebben volt szó a HTML5 enabling script azon problémájáról, hogy sok memóriát eszik.
Erre találtam most egy (fél)megoldást. Az alapelv az, hogy a javascript csak akkor készíti el a HTML5-ös tagot, ha a HTML forrásban le van definiálva.
Példa egy nav elemmel:Tehát van egy nav elemünk, ami IE9 előtt is megy (ahol a sima enabling srcipt).
Mit szóltok hozzá? Ha szerintetek érdemes, megvalósítom és felteszem valahova.
Építő jellegű kritikát szívesen hallanék, mivel csak futtában ismerem a javascriptet.
Üdv: hunkris
■ Erre találtam most egy (fél)megoldást. Az alapelv az, hogy a javascript csak akkor készíti el a HTML5-ös tagot, ha a HTML forrásban le van definiálva.
Példa egy nav elemmel:
<nav id="nav">...</nav>
if (document.getElementById('nav')) {
document.createElement('nav');
}
Mit szóltok hozzá? Ha szerintetek érdemes, megvalósítom és felteszem valahova.
Építő jellegű kritikát szívesen hallanék, mivel csak futtában ismerem a javascriptet.
Üdv: hunkris
Probléma
Szerintem
Ha valaki XP-s, értékelném, ha letesztelné IE8-ban. Win7-re nem hiszem, hogy felmegy.
LT IE9-es, esetleg IE8-as CC-vel kellene beszúrni.
Valakinek van jobb ötlete, mint az ID-s keresés?
Javascriptben lehet tagokat keresni, vagy csak ID-t lehet?
getElementsByTagName és nem
Köszönöm
Az IE8-as js motor ismeri az olyan tagokat, amik nincsenek még ledefiniálva neki? Ez is buktató lehet.
A multimegcsinálás ellen
Nem
Hoppá
Hogy érted a barchobát?
Barchoba
Egyelőre két ok miatt nem
Az első az, hogy a Js-ről THML-re ugrálva ide oda fel tudná-e dolgozni helyesen.
A második meg, mint már kérdeztem, nem tudom, hogy az IE8-as js motor is csak azokat a tagokat ismeri fel, mint a böngésző. Mert akkor szintén kuka.
Tesztelted is az ötletedet?
Sajnos nem volt alkalmam
Egébként, köszönöm a linket, ez a cikk eddig kimaradt.
Nem érdemes
<nav>
elem semmilyen többletinformációt nem hordoz egy<div>
vagy<ul>
-hez képest, ezért teljesen fölösleges a használata.Még nem. De azt hallottam,
role
És tudtommal felismerik
<div id="nav">
alakot is.Cél?
Ezenkívül a HTML5/CSS3 jó ideig csak szép álom és nyűglődés marad, de szerintem értelmes szabvány sose lesz belőle.
Ha ilyesmibe fogsz, javaslom előbb a DOM és függvényei alaposabb tanulmányozását.
Cél
Szabvány
A HTML5 újításai tényleg elhanyagolhatók, ennek ellenére a vállalkozó jellegű emberek néha használják.
És ahogy Gábor mondta, azt próbálom megcsinálni, hogy kevesebb RAM-ot egyen az enabling script. Ez nem egy nagyszabású projekt lenne, csak egy amolyan runout, teszt.
Nagy falat
Nem tudom, hogy fogsz-e tudni jobbat (kisebbet) csinálni a meglévőknél, mindenesetre jó nehéz feladat, ha lesz eredmény, szívesen látnám.
Azt a megközelítésedet még mindig nem értem, hogy ha van
nav
elem, akkor létrehozol mégegyet. Pont az lenne a lényeg, hogy mást hozz létre helyette, pl. div-et. Azt viszont nem tudom, hogy IE alatt agetElementsByTagName
megtalál-e olyan tag-et is, amit IE nem jelenít meg. Ha nem, akkor sajnos végig kell replace-eljed a body-t szövegesen. Legalábbis jobb megoldást most nem tudok.Szerk.: és mindezt akkor, ha a teljes HTML betöltődött!
(Egyébként a
getElementsByTagName
egy helyen el van írva - u.úgy - a linkelt oldalon is. :))Lehet, hogy az én logikámban
Erre van a HTML5-ös enabling script, ami "megtanítja" az Ie-nek az elemet, hogy formázni lehessen.
Próbálom megoldani, hogy csak azt "tanítsa meg" neki, amit "használ is", tehát benne van a forrásban, így csökkentve a memóriaszükségletet.
Viszont a harmadik bekezdésed hatására eszembe jutott, hogy mi lenne, ha nem "betanítanánk neki", hanem kicserélnénk bizonyos elemeket bizonyos elemekre, mint a navot a divre. Ezzel persze odavész a szemantika, de mivel csak IE8 alatt lenne más, ezért még tűrhető.
Mivel még mindig csak futtában ismerem a JS-t, utána fogok olvasni, hogy ki lehet-e így cserélni a forráskódot, meg majd valamikor a C++ után nekiállok komolyabban foglalkozni vele.
Nem mindegy,
Fentebb láttam, hogy nem elég true/false ellenőrizni a tömböt (én nem is szúrtam ki :( ). Akkor ki kell vegyed változóba, és meg kell nézzed, hány db van belőle. Itt olyan értelemben be is buktad a dolgot, hogy ha nincs belőle egy példány sem, attól még lehet, hogy megjelenítené (et vica versa). Tehát - szerintem - csak úgy tudod megoldani, hogy X elemeket keresel és Y elemre cseréled. Nem olyan szép, de működő megoldás. (Egyébként nem olyan sok HTML5 elem van, ami nem mindenütt műxik, a gond inkább az, hogy különfélék, meg a CSS-t is megfelelően le kell kezelni.)
Ha az adott oldal használ jquery-t, akkor azzal könnyebb lesz a CSS-t átírni, ill. esetleg az elemkeresésben is jobb lehet. De külön ezért jqery-t is rátölteni - u.ott fogsz tartani (méretben, stb.), mint a "kapható" HTML5-tanító szkriptek.
A HTML forrást úgy alakítod js-el, ahogy akarod. Csak az ilyen "szöveges" átalakítással nagyon vigyázni kell, nehogy hibás HTML legyen az eredmény. Ha lesz időm, ránézek, hogy meg lehet-e találni DOM fv-el pl. a
nav
elemet IE8 alatt.