czemu w Operze nie działa javascript np document.styleSheets(0).href
i inne?
document.styleSheets zwraca array, a do elementów array dobieramy się przez kwadratowe nawiasy.
P.S.
Bo webmaster słaby ;-)
Originally posted by Zajec:
P.S.Bo webmaster słaby ;-)
Tak jak 70% innych webmasterów robiących TYLKO pod IE A jeśli jakaś ich strona zadziała w Operze to fuks :>
Tak a czemu w IE skrypty dzialają a w Operze nie? (i na odwrot)
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.
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?
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?
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; }
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.
"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