Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Selaimen tunnistus

Sivun loppuun

carter [30.04.2008 19:13:14]

#

Eli ois tarvetta tehä tällänen hommeli vaikka PHPllä:

sovellus katsoo mitä selainta kävijä käyttää, jos selain on vaikka IE6, IE5 etc.. niin sovellus tulostaa vaikka messageboxin että
"Tämä sivusto ei toimi tällä selaimella, sivusto toimii parhaiten uusimmalla firefox selaimella."

Ite periaattees osaan tehä ton mut voisko joku helppii miten ton kävijän selaimen saa tietää.

Kiitos.

Antti Laaksonen [30.04.2008 19:24:16]

#

Palvelimen muuttuja HTTP_USER_AGENT sisältää tietoja selaimesta:

<?php
echo $_SERVER["HTTP_USER_AGENT"];
?>

Jos muuttujassa on teksti MSIE, selain saattaa olla IE:

<?php
if (strpos($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
    echo "Selain on IE";
} else {
    echo "Selain ei ole IE";
}
?>

Tämä tunnistustapa ei ole kuitenkaan luotettava, ja muutenkin kannattaa yrittää suunnitella sivusto niin, että sitä voi käyttää myös IE:llä.

jlaire [30.04.2008 19:49:53]

#

Jos tarvitsee vain erottaa IE muista selaimista, yksi helppo tapa on käyttää ehdollisia kommentteja.

carter [30.04.2008 20:09:11]

#

Kiitokset

Merri [30.04.2008 20:58:02]

#

Jeps, palvelinpuolella selaintunnistusta ei kannata harrastaa. User Agent voidaan räätälöidä miksi vaan, joten jos joku vaikka on sattunut laittamaan Firefoxin UA:ksi vastaavanlaisen kuin mitä on IE:ssä, niin palvelin ei voi silloin UA:sta päätellä, onko selain Firefox voi IE.

Ehdolliset kommentit on tosiaan paras tapa tehdä erottelu HTML:ssä.

JavaScriptissä on myös tärkeää olla tunnistamatta selaimia, olkoonkin että joidenkin kirjastojen tekijät käyttävät sitä, mutta he tietävät sen vastuun mikä siihen liittyy. JavaScriptissä kannattaa sen sijaan tunnistella tarjolla olevia objekteja. Jo vaikka tahdotaan tietää onko document.body olemassa:

if( document.body ) { /* on olemassa */ }

Ehkei paras esimerkki, mutta vaikka XMLHTTPrequestia käytettäessä voi ensin testata onko standardienmukaista tarjolla (muut kuin IE), IE:n versiota tarjolla (XMLHTTP) vai joutuuko elämään ilman sitä.

Lisää infoa löytyy Googlella kun pukkaa hauksi javascript object detection.

reca [01.05.2008 02:22:28]

#

carter kirjoitti:

"Tämä sivusto ei toimi tällä selaimella, sivusto toimii parhaiten uusimmalla firefox selaimella."

Mielestäni lainattu ajatus ei ole kovin järkevä. Tuolla asenteella
menettää potentiaalisia sivuilla kävijöitä. Oletettavasti määrä
on kohtalaisen suuri.

Pyri tekemään sivut toimiviksi niin ei tarvitse tuollaisia käyttää.

Merri [01.05.2008 02:45:48]

#

Toisaalta se riippuu hieman siitä, millaista kohdeyleisöä sivuille haluaa. Omille kotisivuille voi sinällään tehdä mitä vaan, mutta vähänkään yleisemmän aihealueen sivut kannattaa kyllä värkätä toimimaan kaikilla selaimilla.

Lopputuloksenhan ei tarvitse olla täydellisen identtinen kaikilla selaimilla, riittää se että sivua voi selata. Erot huomaa vain jos sivuja selailee kahdella selaimella yhtä aikaa, mitä monet eivät normaalikäytössä tee.

Wizard [01.05.2008 08:52:26]

#

Jos palvelimella on browscap -asennettuna, niin yksi metodi riittää: get_browser()

-W-


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta