Newsgroup: it.comp.lang.javascript
Titolo: Fogli di stile NNe IE

Sto cercando il modo il piu' corretto ed elegante per
far cambiare il caricamento di un foglio di tile a seconda del browser: in
particolare IE e Opera o Netscape.
Con Javascript non sono riuscito a modificare dinamiamente il campo href o
almeno lo faccio con IE ma non con NN.
Per adesso risolvo mettendo in cascata due chiamate a CSS
<link rel="styleshit" type="text/css" href="NN.css">
<link rel="styleshit" type="text/css" href="IE.css" ID="test">
Se metto la proprieta' ID al secondo NN non legge piu' la riga e quindi
carica solo il primo CSS. IE invece legge anche il secondo e cosi'
sovrappongo le caratteristiche.
Il problema e' che a quanto pare NN non accetta le proprieta ID e NAME
all'interno del  tag LINK e quindi non so come fare.
Tutto cio ' per evitare i noiosi e controproducenti redirect.
Qualcuno mi sa dare una dritta ??
--
Claudio Rosati
Web Designer & Developer
www.scepsi.it
E-Mail: 
c.ro...@scepsi.it
------
Scepsi for all the things you are not in business for...WE ARE

 particolare IE e Opera o Netscape.
Mah... se lo scopo è solo nascondere delle singole righe a Netscape4
non mi pare il caso di scomodare alcuno script,
basta che tu scriva !
important}
(deve proprio andare a capo così) al fondo della riga,
e Netscape4 la ignorerà.
Se si può evitare il redirect è sempre meglio,
altrimenti puoi usare uno script di questo tipo:
<script type="text/javascript">
<!--
if (document.layers)
{document.write ('<link rel="stylesheet" href="netscape4.css">')}
else if (navigator.userAgent.indexOf("Opera")>-1)
{document.write ('<link rel="stylesheet" href="opera.css">')}
else if (document.all&&document.getElementById)
{document.write ('<link rel="stylesheet" href="explorer5o6.css">')}
else if (document.all)
{document.write ('<link rel="stylesheet" href="explorer4.css">')}
else if (document.getElementById&&navigator.appName == "Netscape")
{document.write ('<link rel="stylesheet" href="netscape6.css">')}
else {document.write ('<link rel="stylesheet" href="altrobrowser.css">')}
// -->
</script>
<noscript>
browser obsoleto... qua metti un po' di istruzioni per rimpiazzare il foglio di stile...
</noscript>
...e con i principali browser dovresti essere a posto! :o)
MaRoK

 document.write('<link rel="styleshit" type="text/css"
href="'+foglio+'">');
                                          ^^^^^
...un lavoretto sporco, nevvero??? :)))
~~
artemis.alpeia

 ...e con i principali browser dovresti essere a posto! :o)
...A meno che l'utente o il firewall abbia disabilitato javaScript, 
allora addio! Meglio SEMPRE usare tecniche server-side per cose del 
genere.
-- 
A risentirci
\  Davide G. Borin
\\ !!Scudo anti-spam attivo!! Togliere le x e "eliminami" dall'indirizzo
\\\_____________________________________________________________________

 e Netscape4 la ignorerà.


> Sniffa il browser e imposta il css più adatto:
In effetti non avevo pensato di far scrivere direttamente in Javascript il
tag LINK.
Ero piu' diretto alla modifica del tag da me gia inserito, ma in effetti e'
la soluzione piu' elegante.
Grazie per l'aiuto prezioso


 allora addio! Meglio SEMPRE usare tecniche server-side per cose del genere.
Be', senz'altro.
Diciamo che la cosa migliore, quando si può, è evitare del tutto il reindirizzamento,
usando un solo foglio di stile con righe "nascoste" ai vari browser che danno problemi,
così si è al riparo da malfunzionamenti nel javascript
e, soprattutto, l'informazione è contenuta in un foglio di stile unico,
e solo lì andrà modificata.
E siccome il novanta per cento dei problemi li dà Netscape4.x
possono essere utili i trucchetti di:
http://www.richinstyle.com/masterclass/crossbrowser.html#netscape
MaRoK