Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    identificare browser con http_user_agent

    Salve a tutti
    vorrei utilizzare la variabile http_user_agent per identificare il browser (ma quando si decideranno a fare delle "norme iso" per tutti i browser?)
    ma il risultato è alquanto strano.
    Sia da firefox che da explorer ottengo:

    "Browser: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"

    che senso ha?

  2. #2
    Ciao...con asp
    <%
    brow = Request.ServerVariables("HTTP_USER_AGENT")

    If Instr(brow,"MSIE") then
    Response.write ("Internet explorer")
    Elseif Instr(brow,"Mozilla") then
    Response.write ("Mozzilla") ... e così via
    .....
    End if
    %>

    o anhe in java...purtroppo adesso non ricordo il link che viene periodicamente aggiornato.
    Cmq
    <SCRIPT language="JavaScript">

    var BrowserDetect = {
    init: function () {
    this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
    this.version = this.searchVersion(navigator.userAgent)
    || this.searchVersion(navigator.appVersion)
    || "an unknown version";
    this.OS = this.searchString(this.dataOS) || "an unknown OS";
    },
    searchString: function (data) {
    for (var i=0;i<data.length;i++) {
    var dataString = data[i].string;
    var dataProp = data[i].prop;
    this.versionSearchString = data[i].versionSearch || data[i].identity;
    if (dataString) {
    if (dataString.indexOf(data[i].subString) != -1)
    return data[i].identity;
    }
    else if (dataProp)
    return data[i].identity;
    }
    },
    searchVersion: function (dataString) {
    var index = dataString.indexOf(this.versionSearchString);
    if (index == -1) return;
    return parseFloat(dataString.substring(index+this.version SearchString.length+1));
    },
    dataBrowser: [
    {
    string: navigator.userAgent,
    subString: "Chrome",
    identity: "Chrome"

    },
    { string: navigator.userAgent,
    subString: "OmniWeb",
    versionSearch: "OmniWeb/",
    identity: "OmniWeb"
    },
    {
    string: navigator.vendor,
    subString: "Apple",
    identity: "Safari",
    versionSearch: "Version"
    },
    {
    prop: window.opera,
    identity: "Opera"
    },
    {
    string: navigator.vendor,
    subString: "iCab",
    identity: "iCab"
    },
    {
    string: navigator.vendor,
    subString: "KDE",
    identity: "Konqueror"
    },
    {
    string: navigator.userAgent,
    subString: "Firefox",
    identity: "Firefox"
    },
    {
    string: navigator.vendor,
    subString: "Camino",
    identity: "Camino"
    },
    { // for newer Netscapes (6+)
    string: navigator.userAgent,
    subString: "Netscape",
    identity: "Netscape"
    },
    {
    string: navigator.userAgent,
    subString: "MSIE",
    identity: "Explorer",
    versionSearch: "MSIE"
    },
    {
    string: navigator.userAgent,
    subString: "Gecko",
    identity: "Mozilla",
    versionSearch: "rv"
    },
    { // for older Netscapes (4-)
    string: navigator.userAgent,
    subString: "Mozilla",
    identity: "Netscape",
    versionSearch: "Mozilla"
    }
    ],
    dataOS : [
    {
    string: navigator.platform,
    subString: "Win",
    identity: "Windows"
    },
    {
    string: navigator.platform,
    subString: "Mac",
    identity: "Mac"
    },
    {
    string: navigator.userAgent,
    subString: "iPhone",
    identity: "iPhone/iPod"
    },
    {
    string: navigator.platform,
    subString: "Linux",
    identity: "Linux"
    }
    ]

    };
    BrowserDetect.init();

    </SCRIPT>
    <script type="text/javascript">
    <!--
    document.write('<p class="accent">Stai naviganndo con il Browser ' + BrowserDetect.browser + ' ' + BrowserDetect.version + ' on ' + BrowserDetect.OS + '!</p>');
    // -->
    </script>

  3. #3
    ciao grazie per la risposta,

    ma se osservi quello che mi appare

    "Browser: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"

    Il test che mi proponi non funzionerebbe, in quanto nella stringa ho sia "MSIE" che "Mozilla".

    Aggiungo inoltre che tale risultato lo ottengo sia se utilizzo Firefox sia che utilizzo Explorer !!!
    ed è appunto questa la cosa mooolto strana!

    Per quanto riguarda js vorrei evitare (sia perchè non lo conosco molto) sia perchè ho visto comportamenti differenti a seconda del browser, appunto.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938
    Ciao,

    dovresti ricevere questo come rieposta, provato con Firefox 3.5.3 e Msie 8


    FIREFOX 3.5.3 = Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)

    MSIE 8 = Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)



    Massimo

  5. #5

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938
    Ciao,

    Visto l'esempio di Roby_72 decisamente completo.

    La risposta dell'UserAgent è Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729) per Firefox

    e

    Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) per Msie


    Se uno non necessita di informazioni dettaglite dovrebbe bastare:

    <%
    br = request.servervariables("HTTP_USER_AGENT")
    If Instr(br,"MSIE") then
    response.write("<font face='Arial' size='2'>Stai usando MSIE</font>")
    end if
    If Instr(br,"Firefox") then
    response.write("<font face='Arial' size='2'>Stai usando FIREFOX</font>")
    end if
    %>


    Massimo.

  7. #7
    Originariamente inviato da Massimo61
    La risposta dell'UserAgent è Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729) per Firefox
    e
    Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) per Msie

    Massimo.
    grazie a te e a Roby

    In effetti mi ero ingannato perchè entrambe le stringhe di risposta iniziavano con Mozilla/...
    però in una è presente MSIE
    nell'altra Firefox.

    Ma perchè le risposte iniziano entrambe con "MOzilla..." ?

  8. #8
    Ringrazio tutti.
    Ho provato i vari script asp e funzionano perfettamente.
    Ulteriore domanda, come capire quale versione si stà usando di Mozilla o di MSIE?
    Siamo costretti ad usare solo Instr oppure c'è un'altro metodo?
    Parliamo sempre di asp lato server perchè JS risponde troppo tardi essendo sul client.
    grario

  9. #9
    Ho visionato la pagina consigliata da Roby_72 ed effetivamente è un buon esempio.
    Alla fine c'è questa riga di codice che indica la stampa a video delle variabili che si vuole visualizzare,
    response.write "esempio: " & oBrowser("os") '...oppure si possono utilizzare i valori calcolati

    Cosa significa : oppure ecc.....?
    Se voglio visualizzare il tipo o la versione del broswer come devo scrivere?
    grario

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.