login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Redirecten via java na mobile site. (Opgelost)

Offline arthurheijm - 14/01/2014 16:07
Avatar van arthurheijmLid Ik heb een stukje java script, om de bezoeker door te sturen na de mobile site of de gewone site.
Daar ik weinig of beter gezegd niets van java weet, stel ik deze vraag hier op het form.
Mijn vraag is, of het stuk script niet wat gemakkelijker kan.
Hier gaat het om.
  1. <script language='javascript'>
  2. var width = screen.width;
  3. var res=(((!(640-width))*1)
  4. +((!(800-width))*2)
  5. +((!(1024-width))*3)
  6. +((!(1152-width))*4)
  7. +((!(1280-width))*5)
  8. +((!(1366-width))*6)
  9. +((!(1600-width))*7));
  10.  
  11. if(!(res)) res = 1;
  12. if (res=='1') {window.location='mobiel/index.php'}
  13. if (res=='2') {window.location='mobiel/index.php'}
  14. if (res=='3') {window.location='mobiel/index.php'}
  15. if (res=='4') {window.location='website/index.php'}
  16. if (res=='5') {window.location='website/index.php'}
  17. if (res=='6') {window.location='website/index.php'}
  18. if (res=='7') {window.location='website/index.php'}
  19. if (res!='1' && res!='2' && res!='3' && res!='4' && res!='5' && res!='6' && res!='7') {window.location='website/index.php'}
  20. </script>

Bij voorbaat bedankt voor het mee denken.

5 antwoorden

Gesponsorde links
Offline lolll - 14/01/2014 16:32
Avatar van lolll Lid Vanaf regel 11 kan het al heel wat simpeler:
  1. if(res=='1'||res=='2'||res=='3'){ window.location='mobiel/index.php';}
  2. else{ window.location='website/index.php';}

Maar daarnaast weet ik wel niet of dit de beste manier is om te switchen tussen mobiel/pc versie's. Ik denk dat je met responsive design veel meer kan bereiken, maar mijn kennis daarvan is helaas onvoldoende om concrete voorbeelden te gaan geven.
Bedankt door: arthurheijm
Offline arthurheijm - 14/01/2014 18:58
Avatar van arthurheijm Lid Het werk in ieder geval wel.
Maar van responsive design heb ik nog nooit gehoord, dus ga ik het even opzoeken.

In iedergeval bedankt.
Offline Thomas - 14/01/2014 19:07
Avatar van Thomas Moderator Hm, hier is dus de redenatie dat alles <= 1024 x ... mobiel is? Wellicht is een betere manier of men van doen heeft met een mobiel apparaat het controleren van de USER_AGENT of het controleren van andere eigenschappen. Zoveel wordt hier ook voorgesteld, maar de WIKI-pagina waar naar verwezen wordt is verwijderd haha.

Hier zijn ook een aantal libraries voor, ik wilde WURFL voorstellen, maar blijkbaar moet je betalen voor commercieel gebruik van deze dienst ofzo... Wellicht is het de moeite om nog wat verder te snuffelen op de pagina van bovenstaande link, maar dan zul je ook zelf het e.e.a. moeten programmeren of op zijn minst moeten configureren om zaken aan de praat te krijgen.

Ik zou de user agent meer als leidraad nemen, als daar nog een gratis/makkelijk product voor is.

Gaan voor "responsive design" zoals lolll voorstelt komt toch min of meer op hetzelfde neer denk ik, in zoverre dat je nog steeds het e.e.a. moet detecteren om vervolgens te besluiten hoe je wat weergeeft? Het verschil is dan mogelijk wel dat je geen expliciet onderscheid maakt tussen mobiel/desktop maar kijkt naar andere eigenschappen (zoals (enkel) resolutie). In dat opzicht is bovenstaande code al "responsive"? .

---

Wat er in feite in de bovenstaande code gebeurd is het volgende: var res krijgt in de regels 3 t/m 9 een cijfer tussen 0 en 7. 0 wil zeggen: niet-gangbare resolutie, 1 wil zeggen: horizontale resolutie = 640, 2 wil zeggen: horizontale resolutie = 800 etc..
Als je een niet-gangbare hor. resolutie hebt (regel 19) --> website
Als de hor. resolutie 640, 800 of 1024 is --> mobiel
Anders (hor. res 1152, 1280, 1366, 1600 (of groter)) --> website

Maar regel 19 voldoet mogelijk nooit omdat op regel 11 res de waarde 1 krijgt (als deze eerdere 0 was, m.a.w. als er geen geschikte resolutie werd gevonden)? Vage code.
En dus ook die "of groter" hierboven gaat niet op. Voor regel 11 is deze dus mogelijk 0, en daarna dus altijd 1?

Als ik het goed begrijp, zou een ingekorte versie zoiets zijn:
  1. var mobile_resolutions = [640, 800, 1024];
  2. if (mobile_resolutions.indexOf(screen.width) >= 0) {
  3. window.location = 'mobiel/index.php';
  4. } else {
  5. window.location = 'website/index.php';
  6. }


Dit doet in ieder geval functioneel hetzelfde, en waarschijnlijk beter (in feite heb ik regel 11 eruit gemikt).
Bedankt door: arthurheijm
Offline arthurheijm - 18/01/2014 21:33
Avatar van arthurheijm Lid Dus als ik het nu goed begrijp, gaat alles wat onder de mobiele resolutie valt naar de mobiele website.
Met dat stukje van Jou.

En dat van de resolutie, 1024 is bedoeld om door te sturen naar de mobiele site,
omdat daar geen foto's in komen te staan.
Dit omdat de mobiele telefoon van mijn vrouw, telkens na de gewone website word gestuurd
van wegen haar resolutie, en dat de geen die tegenwoordig op een laptop zit of een thuis pc heeft onder een hogere resolutie valt.

Dus is het dan niet beter, om alles wat onder de 1024 valt te laten linken aan de mobiele site.
In php weet ik wel hoe ik het moet doen met hoger/lager, maar van java weet ik helaas niets.
en als ik dit google'd, krijg ik hier geen duidelijk antwoord op.
Weet jij hoe ik dat moet doen.
Bij voorbaat dank.

Offline Thomas - 07/02/2014 15:58
Avatar van Thomas Moderator Voor het geval je dit nog leest:

Dat is nog simpeler, de volgende code verwijst alles met een horizontale resolutie lager dan 1024 door naar mobiel:
  1. if (screen.width < 1024) {
  2. window.location = 'mobiel/index.php';
  3. } else {
  4. window.location = 'website/index.php';
  5. }
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.211s