4
feb
2010
Skicka användarna automatiskt till mobilsida
Om du har en sajt med en mobil variant på egen subdomän så kan du enkelt skicka alla besökare vidare till dessa sidor automatiskt genom att använda nedanstående script som jag skrev häromdagen. Genom att anropa showMobilePage() direkt innanför <head> så skickas besökaren till samma sida fast med ”m.” först i adressen. Scriptet tar hänsyn till om sajten använder http eller https och dessutom om sajten kör med www eller inte.
Exempel
- http://www.pirateboy.net blir http://m.pirateboy.net
- http://pirateboy.net blir http://m.pirateboy.net
- http://www.pirateboy.net/en/mapp/och/undersida.html blir http://m.pirateboy.net/en/mapp/och/undersida.html
- http://pirateboy.net/en/mapp/och/undersida.html blir http://m.pirateboy.net/en/mapp/och/undersida.html
- https://www.pirateboy.net blir https://m.pirateboy.net
- https://pirateboy.net blir https://m.pirateboy.net
- https://www.pirateboy.net/en/mapp/och/undersida.html blir https://m.pirateboy.net/en/mapp/och/undersida.html
- https://pirateboy.net/en/mapp/och/undersida.html blir https://m.pirateboy.net/en/mapp/och/undersida.html
Lösningen skulle t ex funka perfekt till två uppsättningar av en blogg kopplade till samma databas där den ene har ett utseende för datorer och den andra ett utseende för mobiler (i mitt exempel iPhone och iPod). Har du en annan subdomän än ”m” så är det bara till att ändra variabeln ”subdomain” i scriptet. Varsågod!
Fint! Hade dock varit bra om man kunde välja på något vis att visa den vanliga sidan även på mobila enheter. Ibland är det riktigt irriterande att hänvisas till någon sämre nedbantad variant. En cookie, eller en $_GET kanske?
Låter som en utmärkt idé! Det finns alltid utrymme till förbättringar.
Funkar detta endast för folk som använder iPhone eller iPod?
Tänker på ”…((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))…”
Ja, det gör det. Vill man fånga andra enheter får man matcha andra userAgents.
Jag får inte direkt det där scriptet att fungera som det ska på sidan.
Även om man lägger in koden direkt innan kommer eller har jag missuppfattat det?
Ps. Tack på förhand!
Hälsningar
Oscar Nygren
Jag kan inte se att du har lagt in koden någonstans. Koden ovan funkar bara för iPhone/iPod. En nyare och bättre lösning är att köra med Media Queries (http://www.w3.org/TR/css3-mediaqueries/) som gör att du med stylesheets kan förändra sidans utseende baserat på besökarens skärmstorlek och mycket annat. En av fördelarna med den metoden är att adresserna till alla sidor blir de samma så att man slipper se ett mobilt utseende även om man fått länken skickat till sig av någon som suttit och tittat i mobilen.
Jag har gjort en subdomän eftersom jag läst det du skrev punkt till pricka och gjort bl.a. mobil.jamesbond007.nu, men ska nu ändra alla mina sidor på den nya designen till den sidan du gav mig – tack.