Cum se detectează versiunea jquery. Determinarea versiunii browserului - PHP sau javascript

Am scris deja o dată un articol despre, dar astăzi am avut o altă problemă - cum să determin o versiune specifică Internet Explorer... După cum știe toată lumea, acest browser ne surprinde constant, iar fiecare versiune a acestuia practic își trăiește propria viață. Există situații în care codul funcționează adecvat în a 9-a versiune, dar nu funcționează în a 8-a și invers. Și astfel de momente se întâlnesc atunci când se lucrează cu fiecare versiune. Prin urmare, mai devreme sau mai târziu, va trebui să vă confruntați cu problema determinării versiunii specifice a IE.

După cum s-a dovedit, identificarea versiunii IE nu este dificilă. Când determinați versiunea, puteți utiliza caracteristică interesantă Internet Explorer - Fiecare versiune a acestui „browser” are obiecte globale unice. De exemplu, în IE9 există un obiect global document.addEventListener și un astfel de obiect este utilizat doar în versiuni mai vechi decât IE9 (inclusiv). Sau obiectul document.querySelector - a apărut doar în IE8 și este utilizat în versiuni mai noi. Astfel de obiecte sunt în fiecare versiune, bazându-se pe ele (verificându-le existența), puteți compune cu ușurință condiții pentru versiuni specifice de Internet Explorer.
Ce obiecte sunt prezente în diferite versiuni voi oferi mai jos:
IE10 + - window.atob
IE9 + - document.addEventListener
IE8 + - document.querySelector
IE7 + - window.XMLHttpRequest
IE6 + - document.compatMode
Un alt obiect global document.all există în toate versiunile IE, dar nu este utilizat în niciun alt browser, pe baza acestuia, puteți distinge IE de alte browsere.

Pe lângă acest ajutor, formularul general de contact, amprenta, precum și imaginea generală a tuturor paginilor ofertei web aparțin acestui aspect. Caseta de căutare pentru o căutare simplă cuvinte cheie întotdeauna în partea de sus a paginii, lângă sigla orașului. Aici puteți introduce unul sau mai multe cuvinte de căutare. Căutarea începe prin apăsarea butonului cu lupa neagră sau prin apăsarea tastei Enter.

Pe lângă căutările de cuvinte cheie simple, puteți utiliza căutare avansată. Aici, printre altele, puteți exclude cuvinte și puteți determina numărul de accesări pe pagină. Utilizați următoarele opțiuni de căutare pentru a obține rezultate și mai bune.

Cum se determină versiunea Internet Explorer în javascript. Cod

Acum avem toate componentele necesare: un obiect care se află în toate versiunile IE și numai în el - acest lucru îl va distinge de celelalte browsere. Avem și obiecte care să ajute la diferențierea versiunilor specifice de IE. Mai jos sunt câteva exemple care vă arată cum puteți utiliza obiecte globale IE în practică.

Doar cuvinte cu 2 sau mai multe caractere sunt acceptate pentru maximum 200 de caractere pe cerere. Personajele personale sunt folosite pentru a separa cuvintele. poate fi folosit pentru a căuta șiruri de caractere întregi. Pentru utilizatorii care folosesc firmware-ul, pe ecranul din partea superioară a paginilor există semne de salt care se îndreaptă direct către acest ajutor sau conținut. Acestea nu sunt vizibile pentru utilizatorii browserelor grafice moderne.

Utilizați tasta tab pentru a naviga de la link la link. Indicatoarele de instrumente ascunse sunt afișate deasupra navigării serviciului imediat ce utilizați o cheie tab. Imprimarea se realizează folosind o opțiune de afișare optimizată. Numai conținutul este tipărit. Pentru acest meniu, decalajele antetului, subsolului și marginilor sunt întunecate. Trebuie doar să faceți clic pe funcția de imprimare a browserului sau pe simbolul de imprimare de la sfârșitul paginii.

Dacă (document.all) (// cod pentru toate versiunile de IE. Nu se va executa în alte browsere) dacă (document.all &&! Window.atob) (// cod pentru IE9 și mai jos) dacă (document.all &&! Document .addEventListener) (// cod pentru IE8 și mai jos) if (document.all &&! document.querySelector) (// cod pentru IE7 și mai jos) if (document.all &&! window.XMLHttpRequest) (// cod pentru IE6 și mai jos) if (document.all && window.atob) (// cod pentru IE10 și versiuni ulterioare) if (document.all && document.addEventListener) (// cod pentru IE9 și versiuni ulterioare) if (document.all && document.querySelector) (// cod pentru IE8 și versiuni superioare) if (document.all && window.XMLHttpRequest) (// cod pentru IE7 și versiuni superioare) dacă (document.all && document.querySelector &&! document.addEventListener) (// cod doar pentru IE8 )

În zece pași, se obține o mărire de zece ori a măririi prin apăsare, iar prin apăsare se obține o scădere corespunzătoare a nivelului de zoom cu 10%. Pentru a face acest lucru, selectați elementul de meniu „Vizualizare” din bara de meniu a browserului și specificați dimensiunea fontului ca procent. De asemenea, puteți defini singur nivelul de mărire. ... Instrumente suplimentare pentru browserele menționate mai sus, cum ar fi lupele sau firmware-ul, pot fi găsite în indexul resurselor busolei.

Acesta ar putea fi, de exemplu, birouri de planificare sau consultanți. Vom încerca să vă oferim conținut cât mai diferit. Folosim această navigare de ajutor pentru zona de știri, unde puteți afișa pagini de detaliu în navigare.

Este bine dacă site-ul dvs. funcționează în toate sau aproape toate browserele așa cum doriți. Totul se schimbă, apar noi versiuni, apar noi oportunități și este o prostie să nu le folosești, pentru a fi pe placul „vechilor”. În urmă cu aproximativ 1,5 ani, IE 6.0 (după statistica vizitelor pe unul dintre site-urile mele) se afla pe fiecare al treilea computer folosind IE. A trebuit să socotim cu el, tk. Calculatoare dominate de IE - peste 40% dintre vizitatori au folosit IE. Asociez această distribuție a IE 6.0 (în ciuda faptului că a 8-a versiune a fost deja lansată), în primul rând, cu distribuția pe scară largă a piratelor vechi versiuni Windows XP în Rusia care nu se conectează la serverul de actualizare.

Acest lucru vă permite să vă deplasați înainte și înapoi din document în pagina de început. Reveniți la vizualizarea normală apăsând tasta. Începând cu versiunea 3, acest lucru a permis și grafică sau imagini. Cu toate acestea, puteți dezactiva și această caracteristică și puteți mări doar dimensiunea textului. Paginile busolei de barieră au fost concepute în conformitate cu standardele de internet actuale.

Acest ajutor este destinat să vă ajute să înțelegeți cum să folosiți la maxim acest site accesibil și să beneficiați de avantajele unei accesibilități îmbunătățite. Paginile noastre de internet au fost special concepute pentru a fi cât mai accesibile mai Mult Utilizatori de internet. Pe scurt, sunt fără bariere.

Acum instalează activ mai multe versiuni proaspete XP (de asemenea piratat aproape peste tot), unde a 7-a versiune a IE este deja inclusă și Windows 7, furnizat cu MSIE 8.0. În plus, IE a trebuit să facă loc, iar Opera a ocupat primul loc (29,8% din vizitatori), iar IE, pierdând mai mult de 10%, ocupă locul 2, obținând 28,8% din volumul total al vizitatorilor. În același timp, ponderea IE 6,0 în volumul total al utilizatorilor de IE a scăzut de la 34% la 15%. Primele trei sunt închise de FireFox.

Puteți utiliza tastatura pentru a modifica valoarea măririi în mai mulți pași, fiecare pas corespunde unui salt de 10%. Pentru a face acest lucru, selectați Vizualizare din bara de meniu și specificați un factor de scalare. Faceți ca site-ul dvs. să arate grozav oriunde.

Când începem să proiectăm un site web, suntem cu siguranță curioși că arată excelent în orice browser? și arată bine dacă este posibil pentru mult timp, chiar și în versiunile viitoare ale acelor browsere. În trecut, majoritatea browserelor au implementat funcții foarte solicitate, care nu au respectat încă niciun standard.

Astfel, IE 6.0 este acum utilizat de fiecare al 20-lea utilizator (aproximativ 5%). Trebuie să fie luate în calcul.

Această introducere îndelungată are rolul de a arăta că întrebarea dacă se acceptă sau nu versiunea browserului este una serioasă și necesită cercetări periodice pentru a înțelege situația actuală. Va fi diferit pentru diferite regiuni, poate chiar depinde de subiectul site-ului. Mai devreme sau mai târziu, apare ideea de a informa utilizatorul că există deja browsere noi (este timpul să începeți să le utilizați, prieten!).

Desigur, am putea crede că este foarte bine ca unele browsere să fie „promovate” pentru a susține funcții noi în fața oricui altcineva. Dar atunci când aceste funcționalități nu sunt încă standardizate, ceea ce fac creează probleme dezvoltatorilor, deoarece trebuie să luăm în considerare toate implementările diferite care se realizează din fiecare funcționalitate.

Pe de o parte, dezvoltatorii consideră că este fenomenal testarea acestor noi caracteristici. Dar acceptarea prematură duce adesea la site-uri web care utilizează funcții care afectează grav paginile ori de câte ori se modifică versiunea browserului. Aceasta este o experiență uimitoare pentru utilizatori și dezvoltatori. În această cooperare, el intenționează. Datorită tuturor problemelor și limitărilor detectării browserului, vom vedea acum o altă alternativă.

Puteți determina versiunea programului browserului, familia acestuia și puteți lua măsuri, atât din partea serverului, cât și din partea clientului. De exemplu, o bucată de cod javascript care vă permite să determinați asta utilizatorul utilizează versiunea IE mai mică de 7.0

... // după încărcarea documentului, versiunea browserului va fi verificată // și vor fi luate unele acțiuni ...

Înainte de a utiliza funcționalitatea despre care știți că este implementată diferit în unele browsere, puteți rula un test mic pentru a vedea dacă un anumit obiect, metodă, proprietate sau comportament este disponibil de la caz la caz.

În cele mai multe cazuri, acest lucru se poate face prin încercarea de a crea o nouă instanță a funcționalității în cauză. Dacă această instanță returnează o valoare diferită de zero, browserul care o execută înțelege această funcționalitate. Dacă nu, puteți încerca să vă dați seama dacă există alte opțiuni sau puteți utiliza unele implementări vechi echivalente funcțiilor incompatibile.

. . .

< / head >

// după încărcarea documentului, versiunea browserului va fi verificată

Configurații cunoscute ale browserului

Comparație de detectare și funcționalitate a browserului. Aceste diagrame pot ajuta la clarificarea diferențelor dintre cele două alternative în situații diferite. Este totul opțiuni posibile cod care va costa site-ul nostru de testare. Când privim configurațiile cunoscute ale browserului, ambele metode funcționează bine.

Setări de browser necunoscute

Lucrurile devin cu adevărat interesante atunci când avem de a face cu configurații de browser necunoscute. Cu toate acestea, în acest exemplu, pagina nu va arăta bine dacă folosim detectarea browserului, deoarece nu există nicio alternativă care leagă toate segmentele de cod valabile, chiar dacă pagina conține tot codul care trebuie văzut corect în această configurație a browserului necunoscut.

// și s-au luat unele măsuri

< body onload = "check_version();" >

. . .

În PHP vă puteți referi la anteturile transmise de browser, folosind funcția getallheaders (), va returna un tablou asociativ în care elementul va conține informații despre browser.

Așadar, am aflat că există cel puțin 2 căi. Care este mai bună? Sunt o persoană care propune să mă asigur că toate lucrările care nu sunt de securitate, suficient de ușor de făcut pe partea de client, sunt făcute pe mașina client. În zilele noastre, se întâmplă deseori ca resursele mașinilor client să depășească semnificativ capacitățile serverelor web dedicate virtuale. Lasă-le să funcționeze cât mai mult :).

Exemple de definire a funcționalității

În primul rând, verificați întotdeauna standardele, deoarece deseori browserul acceptă un standard recent și o alternativă la codul anterior. În al doilea rând, în fiecare test, sunt verificate doar funcțiile corespunzătoare care sunt căutate, încercând întotdeauna să accepte cel mai mic număr funcționalitatecompatibil cu fiecare browser pentru a evita surprizele.

Să aruncăm o privire la câteva exemple de detectare a funcțiilor. Scriptul următor deschide două alternative. O altă tactică bună este încapsularea descoperirii funcționalității într-un set de funcții, care pot fi apoi utilizate în întregul cod. Pur și simplu returnează adevărat sau fals, ceea ce face mai ușor reutilizarea subrutinei.

Pe de altă parte, javascripturile pot să nu funcționeze deloc pentru client, iar verificarea pe server este singura cale. Acest fenomen este foarte rar, deși nu am statistici exacte.

Există, de asemenea, "capcanele" aici. La urma urmei, în afară de preferințele mele personale, efectuarea validării din partea serverului ar fi o abordare fundamental mai corectă. Doar pentru că nu va fi posibilă determinarea versiunii browserului la unii clienți vechi, așa cum am arătat-o \u200b\u200bîn exemplu. Iar scenariul va fi mai complex. Una dintre capcane poate fi sistemul de cache a paginilor site-ului (ca de exemplu în drupal). După ce, odată stabilit de partea serverului, că clientul este potrivit sau, invers, nu este potrivit pentru afișarea site-ului, pagina cu acest rezultat va fi afișată tuturor celorlalți clienți anonimi până la expirarea duratei de viață a memoriei cache. În astfel de cazuri, javasctipt este deja singura opțiune potrivită.

Când utilizați detecția caracteristicilor, utilizați-o întotdeauna pe obiecte sau obiecte recent create. Cu aceasta, puteți controla cazul când un alt script din aceeași pagină a fost capabil să schimbe situația de la crearea sa, ceea ce va duce la un comportament imprevizibil și imprevizibil.

Browserul afișează primul sub-element acceptat de elementul de sus și ascunde vizual elementele de mai jos. În forma sa cea mai simplă, procedura va arăta astfel. Dar copie de rezervă de asemenea, funcționează pentru diferite formate video pe aceeași etichetă. Browserul dvs. nu acceptă nativ video.

A venit peste acest comportament al plugin-ului fancybox. Când deschideți o fereastră modală, fereastra principală defilează până în partea de sus. Cum să te descurci cu asta? Acest lucru nu se întâmplă întotdeauna, dar în unele cazuri de aspect. Este deja problematic să schimbați aspectul, ...