Autor Zpráva
Dero
Profil
Kolekce styleSheets v Opeře ... není.

Můj problém je takový: jak jednoduše (= elegantně!) zakázat provádění skriptu, nejsou-li k dokumentu nalinkovány styly (př. uživatel si je vypne).

Ve skriptu můžu testovat existenci document.styleSheets[0] a na základě toho skript spustit či zakázat. To však Opera nezkousne.

Potřeboval bych, aby řešení bylo i pro Operu 7.


+ otázečka pro fajnšmekry: jak zakázat provádění skriptu (ve všech prohlížečích), pokud není k dokumentu přilinkován žádný styl s media screen nebo projection?
Leo
Profil
No "ceske" reseni by bylo v tom pripojenem stylu nastavit necemu co na strance urcite mate (body?) nejakou vlastnost a tu testovat v JS :-) Dalsi co me napada projit si pres DOM jestli v head mate element link a nacist jeho vlastnosti - coz samozrejme netestuje, jestli se externi CSS soubor uspesne povedlo stahnout ze serveru... Leo
habendorf
Profil
Šel bych na to přes DOM, jak píše Leo. Jen pozor, bude třeba navíc testovat i existenci stylů připojených přes @import.
Chamurappi
Profil
Reaguji na Dera:
K čemu elegantnímu ti přesně tato informace bude? I když k dokumentu jsou přilinkovány styly, nemusí v nich být to, s čím by skript rád počítal.

Napadl mě zajímavý způsob, jakým zjistit, zda jsou v Opeře stylopisy zapnuté. Stačí v DOMu vyrobit tento element:
<link rel="stylesheet" href="javascript:podporuje = true">
Leo
Profil
No javascript: v href? Ze se nestydite... :-) Ale cele to zalezi na tom, k cemu to Dero potrebuj, Leo
Oswald
Profil
Chamurappiho je nejjednodušší, funkční a velmi vtipné! :)

Napadlo mě zkontrolovat, jestli se aplikovala pravidla pro nějaký element, něco jako:



window.onload = function() {
var stylesOn = getComputedStyle(document.getElementsByTagName('a')[0], null).color == '#a2abb4';
}


Update: v Opeře 7 to ale fungovat nebude
Toto téma je uzamčeno. Odpověď nelze zaslat.

0