Autor | Zpráva | ||
---|---|---|---|
juriad Profil |
#1 · Zasláno: 24. 2. 2015, 17:23:40
Hledám jaký element, který vložit do stránky, tak aby neměl žádnou vizuální reprezentaci, ale byl přístupný z JS jako pojmenovaná záložka v DOMu (stačí nalezitelost podle id). Jde mi o řešení situace, kdy si musím poznamenat doprostřed seznamu (ul) nebo tabulky (table) nebo obecně kamkoli, kam později přidávat další záznamy.
Mám třeba menu: <ul> // tady bude seznam kontaktů, který je tvořen JS podle aktuální dostupnosti <li>Settings ... </li> <li>Logout</li> </ul> Skript bude postupně přidávat položky do seznamu na vyznačené místo a časem je zase odebírat. Jde mi o to, aby si nemusel pamatovat, že nový kontakt má vložit za poslední zapamatovaný (ten už může být smazaný) nebo před settings (protože settings se může někdy nezobrazovat a je křehké se odkazovat na něco nesouvisejícího). Zatím mi jako nejlepší volba zdá <script> . Ten je povolený snad všude.
http://kod.djpw.cz/lwkb Existuje lepší placeholder? Můžou být nějaké problémy s mým prázným <script>em? |
||
Joker Profil |
#2 · Zasláno: 24. 2. 2015, 18:27:45
juriad:
Nebylo by snazší dát elementu, za (před) který se má přidat, nějakou CSS třídu? |
||
juriad Profil |
Jednodušší by to bylo, ale chci řešit problematiku, kdy část webu je seskládaná v JS a těch placeholderů je zpočátku za sebou hodně. Třeba o to menu se stará nějaká funkce, která (zjednodušeně řečeno) dostane pole funkcí, kterým předá element ul, do kterého si mají doplnit položky. A některé ty funkce ještě nemají data, která by do menu přidaly. Musí si tedy poznamenat místo, kam je později budou přidávat.
Třídy nelze použít, protože následující položka ještě nebyla vytvořena a předchozí nemusí existovat či může být také poznamenaná k pozdějšímu doplnění - docházelo by ke kolizím. |
||
Str4wberry Profil |
#4 · Zasláno: 24. 2. 2015, 22:29:48
Co je myšleno tím „je povoleno“? Aby to prolezlo validátorem? Myslím, že jinak není problém vložit kamkoliv cokoliv, co nemá nějaké styly, které by narušily vzhled, a není to blokové, aby to náhodou automaticky neukončovalo některé značky.
Klidně bych si pro přehlednost vytvořil vlastní element, třeba <placeholder> .
Jinak zrovna v tomto případě by mi přišlo možná logičtější použít seznamy dva. |
||
juriad Profil |
#5 · Zasláno: 24. 2. 2015, 23:19:23
Str4wberry:
Aby to prošlo validátorem nepotřebuji, spíš mi jde o to, abych si tím něco nepokazil. Nemám nic proti použití vlastní značky, jen jsem napřed hledal, zda něco vhodného již neexistuje. Volil jsem <script>, protože jsem tušil, že bude neškodný (prohlížeče jej znají a uživatelé jej používají pro vypisování (document.write) kde čeho). Dva seznamy použít nechci kvůli tomu, že ten jeden velký seznam je absolutně pozicovaný (hover menu). A ono nejde jen o tento konkrétní příklad, hledám něco univerzálnějšího, co můžu použít na kterémkoli místě v DOMu a HTML. Jak se třeba zachovají jednotlivé prohlížeče vůči neznámému tagu poblíž neukončené položky v seznamu? Bude placeholder potomkem li, nebo ul? V HTML 4 jsem našel jen zmínku, že je koncová značka optional, ale ne přesná pravidla zavírání (HTML 5 to popisuje pěkně). Prý: „All browsers render unknown elements inline, i.e. as if they had a display:inline CSS rule. “ Ale když to zkusím, tak getComputedStyle(placeholder).display vrací 'none'.
Asi si to půjdu udělat testovací stránku a nechám si ji vyfotit v hromadě prohlížečů. |
||
anonymníí Profil * |
#6 · Zasláno: 25. 2. 2015, 05:38:47
juriad:
Neuzavírej jednotlivá LI a budeš mít jasno, tvá vložená značka bude potomkem LI. Obecně je to čistší řešení než dávat cokoliv do seznamu, co tam nemá co dělat. |
||
Joker Profil |
#7 · Zasláno: 25. 2. 2015, 09:00:47
juriad:
Tak pokud by šlo čistě o seznamy, dala by se použít i neviditelná položka <li>. Ale může to být v některých situacích nevýhoda (například kdyby něco počítalo počet položek podle toho, kolik potomků <li> daný prvek má). Ale <script> vypadá dobře a šel by i logicky odůvodnit (když je to místo pro skriptovaný obsah… :) ) |
||
Časová prodleva: 6 dní
|
|||
Chamurappi Profil |
#8 · Zasláno: 3. 3. 2015, 11:43:13
Reaguji na juriada:
Nezkoušel jsem, jak se chovají různé parsery, ale pravidla pro umístění elementu <meta> bývají také někdy vykládána rozvolněně. Je neviditelný, je to jen jedna značka, může beztrestně nést i nějakou popisnou informaci (či nějaký parametr) v content u…
„Bude placeholder potomkem li, nebo ul?“ Minimálně starý Explorer měl tendenci dávat do <li> i věci, které byly za výslovně uvedeným koncem </li> . Hledám, hledám… a nacházím, že jsem vlákno o tom před půlrokem nemohl najít :-)
Teď jsem přes DB našel, co jsem tenkrát hledal – IE6 se řídí formátem kódu? – hurá! Rovnou to můžu i zapomenout, protože se to zjevně týkalo jen Exploreru 6. |
||
_es Profil |
#9 · Zasláno: 3. 3. 2015, 12:25:26
juriad:
Script má aj viac možností. Nemusí byť prázdny, vtedy kód v ňom dokáže identifikovať aj „sám seba“ v štruktúre DOM, potom ani nie je nutný atribút id .
|
||
Časová prodleva: 9 let
|
0