ie browser detecteren
Ik wil graag in mijn website een browserherkenning: if ie < ie10, en als dat zo is, de melding dat er een verouderde onveilige browser gebruikt wordt die geupdate moet.
Ik heb gezocht, maar vind geen up-to-date oplossing.
Heeft iemand een idee.
hier wat aan?
Misschien heb je Is dat er niet, dan kan ik deze wel gebruiken.
http://stackoverflow.com/questions/5302302/php-if-internet-explorer-6-7-8-or-9. Maar wil je daadwerkelijk je gebruikers als kleine kinderen behandelen? En hoe zit het met de gebruikers die hun browser niet kunnen updaten, bijvoorbeeld in een werksituatie?
Een hoop mogelijkheden op Je zou dan beter alleen een melding kunnen geven dat het aanbevolen is om een nieuwere browser te gebruiken, maar je moet ze dan niet blokkeren
Sites die dat doen laat ik gewoon links liggen. Betutteling ten top.
Zorg wel voor een wegklik-mogelijkheid met een cookie voor langere duur.
(vb. http://www.geek.com/microsoft/internet-explorer-11-will-pretend-its-firefox-1543903)
Het simpelste is om specifieke Internet Explorer CSS te gebruiken, waarmee je per versie van Internet Explorer een (eventueel verschillend) bericht kunt laten zien: https://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx
Als je die opneemt kan je zo voor oudere versies een bericht laten zien.
@Ben, sites die geen HTML5 ondersteunen laat ik links liggen ;)
Ben van Velzen op 07/05/2016 18:32:34:
Sites die dat doen laat ik gewoon links liggen. Betutteling ten top.
Precies.
Dan maar een website die gewoon moet werken...
@An tje: de logica van die opmerking ontgaat me.
PHP-code wordt uitgevoerd op de webserver, deze heeft werkelijk geen idee welke browser er draait op jouw lokale PC, dat zal de server ook werkelijk biet zijn aangezien er genormaliseerde code naar de lokale PC wordt gestuurd, er van uitgaande dat deze lokale PC (dus de webbrowser)deze code op de juiste manier verwerkt.
Gewijzigd op 08/05/2016 23:06:39 door Pipo Clown
Omdat de oude versies van IE inmiddels als onveilig worden beschouwd, en het juist voor die versies een hoop werk is om de lay-out compatible te maken, heb ik weinig zin om daar energie in te steken.
Nou kan je natuurlijk gewoon een belabberde website tonen op die sites, liever heb ik de oplossing, zoals Ariën aangeeft, dat je een melding maakt én aangeeft dat je website op die oude browser niet meer naar behoren werkt.
Noem het betutteling, maar dat ligt een beetje aan de doelgroep waarvoor je de site bouwt. Ik schrik me nog steeds kapot van de hoeveelheid mensen die XP in combinatie met IE 6 of 7 gebruiken en vrolijk hun bankzaken blijven regelen op dat systeem. Die hebben geen flauw benul van de onveiligheid hiervan. Dit zijn met name mensen die niet met de computer grootgeworden zijn.
Als websites dan niet meer naar behoren functioneren, waarbij een nette melding dan wel op z´n plaats is, dan draagt dat m.i. wel bij aan de noodzaak van updaten.
De mededeling dat mijn browser "onveilig" zou zijn vindt ik volkomende overbodig. Dat hoeft een site mij niet te vertellen, dat is de verantwoordelijkheid van het browser zelf. Laat lekker de verantwoordelijkheden voor welke versie veilig is bij degene die daarvoor moet zorgen.
Mocht je site niet meer werken op dat browser, vertel dan de werkelijkheid met een melding als "Deze site ondersteund uw browser versie niet meer, update uw browser om verder te gaan".
Merk overigens op dat PHP wel degelijk de browser kan achterhalen. Dit soort informatie wordt meegestuurd via de HTTP Request. PHP heeft hier zelfs een functie voor: get_browser
Pipo Clown op 08/05/2016 23:06:08:
Ik ga proberen om het iets duidelijker te vertellen.
PHP-code wordt uitgevoerd op de webserver, deze heeft werkelijk geen idee welke browser er draait op jouw lokale PC, dat zal de server ook werkelijk biet zijn aangezien er genormaliseerde code naar de lokale PC wordt gestuurd, er van uitgaande dat deze lokale PC (dus de webbrowser)deze code op de juiste manier verwerkt.
PHP-code wordt uitgevoerd op de webserver, deze heeft werkelijk geen idee welke browser er draait op jouw lokale PC, dat zal de server ook werkelijk biet zijn aangezien er genormaliseerde code naar de lokale PC wordt gestuurd, er van uitgaande dat deze lokale PC (dus de webbrowser)deze code op de juiste manier verwerkt.
Deze functie is dan niet 100% betrouwbaar, maar hoe werkt get_browser() dan?
get_browser() maakt gebruik van de user agent en een signature file. Net zo onbetrouwbaar als wat eerder genoemd werd dus, om exact dezelfde reden: je kunt hem zelf instellen. Maar wie weet hoe je dat moet doen is ook slim genoeg om de gevolgen daarvan onder ogen te zien. Ik heb ooit een SQL injectie erin gestopt, een jaar of 10 geleden. Dat brak een hoop websites.
Dan ben je het aan je eindgebruikers verplicht om een HTML5 site te hebben, waarin je rekening houdt met de wensen van 'vingerende' gebruikers met een streelpaneel.
Een site op basis van HTML4 voldoet tegenwoordig niet echt meer, omdat er dito eisen aan vast zitten: als je geluk hebt werkt de site zonder ActiveX, Java, Flash of andere dependencies, maar er is dan geen responsive layout, IE specieke ellende voor verschillende box models, bubbel-richtingen, en trage CSS, quircks mode... al die ellende ben je voor met HTML5.
Tenzij je de hoofdmoot van de normale gebruikers niet interesseert, dan kan je rustig blijven voortborduren op desktop-technologie. Daarmee zet je jezelf wel in een hoekje. Niet dat het erg hoeft te zijn, als je een niche-markt voor ogen hebt.
Wat je noemt is niet direct iets dat HTML5 oplost, afgezien van wat nieuwe input types. De rest is allemaal dankzij CSS3. Je kan als je zou willen prima een responsive layout bouwen met XHTML of HTML4.01 Transitional.
Toch is er wel wat te zeggen voor een mededeling.
Ik ben bezig met een google maps API.
Werkt met database gekoppeld aan de (javascript) api.
Deze werkt met de IE pas vanaf IE9.
dus op een windows XP met IE werkt meeste niet optimaal.
Wel zo netjes om dan te melden om voor volledig functioneren onder XP een andere browser te installeren.
- nieuwe elementen zoals canvas, svg voor bitmap en vectorgraphics
- een bulk aan JavaScript API's, zoals websockets voor client <-> client streaming
- daarbij ondersteunen browsers niet alleen CSS3, maar ook al enkele CSS4
Je kunt met HTML5 zelfs een hele offline applicatie bouwen, met een client side SQL database, 3D games zonder traag startende Java of onveilige Flash, allemaal dingen die met HTML4 niet kunnen.
Ow, en XHTML(5) is dood. Leuk dat we een subset van SGML (HTML) kunnen gebruiken, maar daarmee kan je niet alles wat je met HTML5 kan. Ja, ik heb het ook geprobeerd, syntax-technisch is het fijn als je HTML snel geparsed kan worden, maar het maakt niet meer uit. Je kunt HTML5 nog steeds opbouwen als XHTML, gaat prima, op sommige punten na dan.
Het voornaamste probleem van XHTML vind ik dat als er ergens een foutje zit in de opmaak (het liefst eentje op basis van data die maar soms voorkomt) ineens je hele pagina niet geparsed kan worden door de browser, dan krijg je de zogeheten Yellow Screen of Death. Je kunt niet eens een ludieke melding weergeven zoals menig 404-melding.. alsof je computer in het stenen tijdperk zit. Volgens mij is XHTML alleen nog maar leuk als je eindgebruiker een computer is. Geen mens maakt het wat uit.
Hoeveel mensen in Nederland gebruiken nog antieke browsers?
Volgens http://caniuse.com :
IE6 : 0,02% -- wow, dan ben je echt volledig beperkt!
IE7 : 0,03% -- vrij nutteloos
IE8 : 0,36% -- duizenden mensen met een Windows XP browser...(!)
IE9 : 0,58% -- een browser die een beetje compliant begint te worden
IE10 : 0,50% -- een gedeeltelijk compliant browser..
IE11 : 9,37% -- behoorlijk compliant, voor iedereen zonder Windows 10
Egde13 : 1,08% -- Windows 10 browser niet echt populair
Vanaf IE11 begint HTML5 leuk te worden: http://html5demos.com
Een site in HTML4 of XHTML is er dus eentje die onderhoud behoeft. En als de mensen van die site die moeite niet willen nemen is dat een teken aan de wand. Vandaar mijn opmerking.
Toevoeging op 09/05/2016 21:09:29:
Ow, en in JavaScript geldt hetzelfde: geen browserdetectie, maar browsers afrekenen op de functionaliteit die ze bieden, door van te voren te testen of het wordt ondersteund, zoals de Web Audio API.
graceful degredation doen we er tegenwoordig alles aan om webpagina's geschikt te maken voor user agents en clients die vele malen beperkter zijn dan Internet Explorer: browsers op smartphones. Het achterliggende principe is echter universeel: een zo goed mogelijke user experience overhouden op hardware en software die verre van optimaal is. En dát principe kun je dus evengoed toepassen op browsers die verre van optimaal zijn, waaronder oudere versies van IE.
Het wel/niet ondersteunen van bepaalde browsers zou geen binaire ja/nee-keuze moeten zijn; het is veel meer een groot grijs gebied tussen zwart en wit. Met technieken zoals Dat triggert standards mode in alle browsers, zelfs IE6.
http://stackoverflow.com/questions/5384625/doctype-html-and-older-browsers