21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
davee
Profil
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
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
Viz třeba Práce s vkládanými styly na Intervalu.
habendorf
Profil
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
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
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 *
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 *
jej, je videt, ze resim jinej problem :)
objID...('neco').classname=(kdyz IE)?'druhy':'prvni')
Toto téma je uzamčeno. Odpověď nelze zaslat.

0