DHTML w Operze

w dziale Strony WWW w Operze
jlp napisał(a):

czemu w Operze nie działa javascript np document.styleSheets(0).href
i inne?

Zajec napisał(a):

document.styleSheets zwraca array, a do elementów array dobieramy się przez kwadratowe nawiasy.

P.S.
Bo webmaster słaby ;-)

IGI2 napisał(a):

Originally posted by Zajec:

P.S.Bo webmaster słaby ;-)



Tak jak 70% innych webmasterów robiących TYLKO pod IE bigsmile A jeśli jakaś ich strona zadziała w Operze to fuks :>

jlp napisał(a):

Tak a czemu w IE skrypty dzialają a w Operze nie? (i na odwrot)

Zajec napisał(a):

Originally posted by jlp:

Tak a czemu w IE skrypty dzialają a w Operze nie? (i na odwrot)


Bo twórcy IE postanowili w celu "ułatwienia" życia webmasterom dodać obsługę wielu dziwnych rzeczy (jak choćby odwoływanie się do arrays przez nawiasy). Opera skopiowała kilka idiotycznych zachowań IE w celu kompatybilności, ale wszystkich durnowatych pomysłów Microsoftu nie dało się przewidzieć.

Po prostu: Microsoft stworzył swój własny, nieudokumentowany standard - zamiast przystosować IE do jednego, już istniejącego i porządnie opisanego.

P.S.
A czemu coś działającego w Operze nie działa w IE? Cóż, developerzy IE byli zbyt zajęci robieniem dziwnych obejść (znów przykład: nawiasy) i nie starczyło im czasu na zaimplementowanie wszystkich udokumentowanych funkcji JS.

jlp napisał(a):

Dokładnie to chodziło mi o document.styleSheets[0].href= newstyle.css
dziala w IE a nie w Operze i trzeba pisac JS z link alternate.
Czy to tez daltego ze IE wymyslil cos dziwnego?

Zajec napisał(a):

Originally posted by jlp:

Dokładnie to chodziło mi o document.styleSheets[0].href= newstyle.css
dziala w IE a nie w Operze i trzeba pisac JS z link alternate.
Czy to tez daltego ze IE wymyslil cos dziwnego?


To teraz mówisz, że nie chodzi o nawiasy? faint

Tak, IE wymyślił coś dziwnego umożliwiając edycję "href". Zobacz sobie tutaj: http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheet - atrybut href jest "readonly".

Jeśli chcesz zrobić podmiankę stylesheetu, proponuję:
<link rel="stylesheet" title="główny" href="glowny.css">
<link rel="alternate stylesheet" title="inny" href="inny.css">
function uzyj(numer)
{
for (var i=0; i<document.styleSheets.length; i++)
document.styleSheets[i].disabled=true;
document.styleSheets[numer].disabled=false;
}

Zajec napisał(a):

Hm, natknąłem się na kolejny bug Opery - dotyczy obsługi document.styleSheets w dokumentach XML: http://zajec.net/bug/js.xml.stylesheets . Zgłoszony oczywiście.

d.i.z. napisał(a):

"Known problem" bym powiedział.

"Opera does not provide the href property for stylesheets added using XML processing instructions, and they cannot be disabled."
http://www.howtocreate.co.uk/tutorials/javascript/domstylesheets