Hvordan bruke Javascripts gjennomført i to forskjellige nettlesere

Hvordan bruke Javascripts gjennomført i to forskjellige nettlesere


Browser kompatibilitet er en av de eldste hodepine for Javascript programmerere over hele verden. Det er to måter å tillate forhold i Javascript for å ta forskjellige veier avhengig av kompatibilitet: Browser deteksjon og objekt gjenkjenning. Nettleser gjenkjenning sjekker med nettleseren direkte for å se hvilke merke og modell det er. Dette lar deg velge hvilken kode til å kjøre for hvilken nettleser. Object registrering kan du sjekke om et aspekt av nettleserens Javascript definisjon finnes før du prøver å bruke den. Browser påvisning er en eldre, mer klassiske løsningen, mens objekt gjenkjenning kan være en mer elegant løsning.

Bruksanvisning

nettleser Detection

1 Skriv en funksjon som vil lykkes oppdage navnet på nettleseren.

funksjons thisBrowserIs (browserTest) {

if(navigator.userAgent.indexOf(browserTest)!=-1){

return true;

}

}

Denne sier at hvis det finner strengen som sendes til denne funksjonen i navigator.userAgent eiendom, deretter returnere true. Du kan stille browserTest til "MSIE" (Microsoft Internet Explorer), "Firefox", "Safari", "Opera" eller "Chrome" når du kaller funksjonen.

2 Bruk funksjonen til å kjøre browser-spesifikk kode.

if (thisBrowserIs ( "MSIE")) {

// insert code written for MSIE

}

Denne sier at hvis denne nettleseren er Microsoft Internet Explorer, og deretter utføre eventuelle skript i denne tilstanden. Som nevnt før, kan dette gjøres med "Firefox", "Safari", "Opera" eller "Chrome" i stedet.

3 Vurdere andre alternativer. Dette kan se enkelt nok, men det kan bli en stor rot virkelig rask hvis du ønsker å finne nettleserversjon nummer, eller enda verre, hvis et nytt nettleser kommer sammen at denne funksjonen ikke er designet for å forutsi. Jo mer grasiøs alternativ er objekt gjenkjenning.

Object Detection

4 Velg et objekt å oppdage. Bare MSIE har en "document.all" objekt. Bare Opera har en "window.opera" objekt. Eldre versjoner av MSIE støtter ikke "document.getElementsByClassName" objekt. Men med objekt gjenkjenning, er det ikke så mye behov for å huske alle som nettleser kompatibilitet ting. Hvis du vil bruke et objekt som du tror kanskje ikke fungerer i alle nettlesere, bare lage en betinget utsagn for å se om nettleseren oppdager dens eksistens før du bruker den.

if (document.getElementsByClassName) {

Dette sier hvis getElementsByClassName objektet finnes, deretter kjøre koden innenfor følgende parentes.

5 Bruk objekt som ble testet for nå at nettleseren er sikker på at det finnes, og lukk den betingede uttalelse.

myElementArray = document.getElementsByClassName("myClass");

}

Dette sier bruker getElementsByClassName å lage en array "myElementArray" av alle elementer med sin klasse satt til "MyClass."

6 Bruk en "annet" uttalelse etter "hvis" betingelse for å inkludere en koding alternativ til objektet blir testet for. Dette er noen ganger valgfritt.

ellers{

// Kode et alternativ til getElementsByClassName objektet

}