-
Cambiare file css
Sicuramente è un argomento trattato più e più volte ma cercando non ho trovato soluzioni al problema.
Mi spiego: mi sto esercitando con la creazione di una piccola pagina web. Ho creato un layout "che rende" solo se visualizzato tramite desktop, per tale motivo sento la necessità di cambiare il mio file css in caso si acceda al sito tramite dispositivo mobile.
Spulciando un po' sono riuscito a costruire uno script minimale ma ahimè non funziona. Chiedo a voi come dovrei fare.
Ecco il codice javascript che è presente in un file separato.
Codice:
if (
(navigator.userAgent.match(/iPhone/i)) ||
(navigator.userAgent.match(/Android/i)) ||
(navigator.userAgent.match(/iPod/i)) ||
(navigator.userAgent.match(/iPad/i)) ||
(navigator.userAgent.match(/Blackberry/i)) ||
(navigator.userAgent.match(/Opera Mini/i)) ||
(navigator.userAgent.match(/IEMobile/i)) ||
)
document.writeln(<link rel="stylesheet" type="text/css" href="Versione mobile.css" />)
Grazie mille
-
quello che ti interessa e' navigator.platform che ti restituisce la piattaforma in uso , tipo :
HP-UX
Linux i686
Linux armv7l
Mac68K
MacPPC
MacIntel
SunOS
Win16
Win32
WinCE
Etc..
-
In generale è sconsigliabile effettuare un riconoscimento di questo tipo, spesso l'uso delle media queries è più adatto.
-
in effetti usando media queries e' possibile modificare i fogli di stile adattandoli ai limiti del device.
io poi ho avuto una difficolta' nel caso avessi pagine create in flash con non potevano essere visualizzate da alcuni sistemi e che quindi adavano reindirizzate , ma ho trovato delle soluzioni alternative..
comunque non ho ancora ben capito il perche' sia sconsigliabile usare userAgent , e' legato ad un codice etico relativo alla privacy?
-
Nulla di etico: ci sono centinaia di dispositivi differenti e nel futuro saranno sempre di più, discriminarli in base all'user-agent non è una buona idea specialmente se ci sono altri modi per differenziarli, studiati appositamente per ottenere un determinato risultato.
Per esempio esistono migliaia di dispositivi Android, ma non sono solo smartphone o tablet: ci sono anche console, televisori e chissà cos'altro in futuro. E tutti questi usano user-agent differenti o molto simili? Personalmente non lo so, ma non ne terrei conto.
Se lo scopo è adattare l'impaginazione in modo tale che sia confortevole la navigazione anche su piccoli schermi allora la soluzione più adatta è usare le media query per discriminare in base alle dimensione dello schermo.
Qualche buona lettura:
http://webaim.org/blog/user-agent-string-history/
http://www.sitepoint.com/why-browser-sniffing-stinks/
http://farukat.es/journal/2011/02/49...owser-sniffing
-
Grazie mille per i consigli e .. le buone letture che iniziero' subito a guardare !
-
:lol:
.. mi sono fatto un sacco di risate leggendo questi articoli ...
"....because browsers lie."
e' verissimo !
in effetti non avevo mai pensato a questi riscontri (la storia ci insegna molto!), la conclusione piu' logica e' assolutamente quella di non diversificare in base al device (anche perche' con "you know that there are some 637 userAgent strings used on the Internet "..e'un po' difficile!) , ma di creare sistemi aperti e dinamici che si possano adattare (come acqua) alle diverse situazioni.
Grazie ancora ! Sei un grande !