Autor | Zpráva | ||
---|---|---|---|
davee Profil |
#1 · Zasláno: 3. 4. 2005, 16:17:05
problém: potrebujem, aby bol určitý obsah na stránke skrytý pomocou CSS (visibility: hidden), ale iba v prípade, že browser podporuje javascript. existuje spôsob, akým môžem pristupovať, resp. pridávať CSS definície javascriptom? potom by som mohol javascriptom určiť visibility tomuto objektu.
viem, že pomocou DHTML môžem priamo meniť style prvku s ID. problém je ten, že document.getElementByID('prvok').style.visibility='hidden' môžem použiť až po tom, čo sa objekt vygeneruje, a zobrazí. (na sekundu preblikne). |
||
Fred Profil |
#2 · Zasláno: 3. 4. 2005, 17:35:55
function jscss() {
var csslink = document.createElement('link'); csslink.setAttribute('href','jsstyl.css'); csslink.setAttribute('rel','stylesheet'); csslink.setAttribute('type','text/css'); document.getElementsByTagName('head').item(0).appendChild(csslink); } function addEvent(obj, evType, fn){ if (obj.addEventListener){ obj.addEventListener(evType, fn, true); return true; } else if (obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; } else { return false; } } addEvent(window, 'load', jscss); Funguje stoprocentně, nenačte se v IE4 |
||
Pachollini Profil |
#3 · Zasláno: 3. 4. 2005, 17:36:23
Viz třeba Práce s vkládanými styly na Intervalu.
|
||
habendorf Profil |
#4 · Zasláno: 3. 4. 2005, 17:37:17 · Upravil/a: habendorf
Já myslím že na to jdeš dobře, použil bych to jak to píšeš, jen s tím rozdílem, že bych to uplatňoval na nadřazený prvek. Čili
<div id="nadrazeny">Ten tvůj vygenerovaný prvek</div> a document.getElementByID('nadrazeny').style.visibility='hidden'; Uff, tak jsem psal pomalu :o) |
||
Yuhů Profil |
#5 · Zasláno: 3. 4. 2005, 20:53:25
reaguju na původní dotaz. Já to dělám takhle:
<link rel="stylesheet" href="soubor.css" disabled="disabled"> <script> document.stylesheets[0].disabled = false; </script> Nejsem si jistej, jestli to funguje i jinde než v IE, ale kdyžtak se to dá přespat přes IDčko. Idea je prostě taková, že přes disabled se styl zakáže a přes javascript znovu povolí. Pokud není javascript, tak se to nepovolí. |
||
habendorf Profil |
#6 · Zasláno: 3. 4. 2005, 21:11:01
Yuhů: Nedávno jsem to dělal, takže to mám v živé paměti. document.stylesheets je opravdu IE only, musí se to udělat přes ID.
|
||
Peta Profil * |
#7 · Zasláno: 5. 4. 2005, 17:09:00
Ja bych to asi take delal blokove. Priradil nejaky className pro body a body bych dal ID nebo nejakemu divu. Proc prepisovat CSS, tak drasticky, ze jo?
head styl ..spolecny... .prvni a {} .druhy a {} /styl script if IE pak objID...('neco','druhy','prvni') /script /head body id="neco" class="prvni" /body |
||
Peta Profil * |
#8 · Zasláno: 5. 4. 2005, 17:10:56
jej, je videt, ze resim jinej problem :)
objID...('neco').classname=(kdyz IE)?'druhy':'prvni') |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0