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

    Check browser in jvscript

    Salve ragazzi,
    girando per la rete ho trovato uno script che parebbe fare al caso mio.

    Vi spiego ciò che mi occorre.
    Voglio fare in modo che quando un utente va su un sito (che sto costruendo), il javascript legga il suo browser e carichi i css a seconda del suo browser...
    Cioè se ha firefox vedrà il sito con i css ottimizzati per firefox e così via...

    Il sito dove ho trovato una cosa del genere è questo:

    http://techpatterns.com/downloads/ja..._detection.php

    io ho seguito la procedura, cioè ho messo i due file .js nella root principale, correggendo i link nelle pagine (in quel caso loro lo mettano in una cartellina denominata "js")

    poi ho creato alcuni css di prova e glieli ho caricati nel file "browser_css.js"

    ho aggiunto le due stringhe per il caricamento dei file .js nell'index ho provato (da mac con safari, da pc con ie7 e firefox) ma niente... sembra leggermi sempre il css di default, quindi sembra ignorare i jvscript e i browser....

    Come devo fare? Lo script a parer vostro è giusto, funziona?

    Ringrazio tutti anticipatamente. Ciao e grazie per ora.

  2. #2
    Allora qui vi mostro il pezzettino di codice tra l'head per richiamare gli script esterni:

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Homepage</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
    <link href="sfondi.css" rel="stylesheet" type="text/css" />
    <script type = "text/javascript" src = "browser_detection.js"></script>
    <script type = "text/javascript" src = "browser_css.js"></script>
    </head>

    In "browser_detection.js" (che non posto perché è lungo ed è semplicemente il solito che trovate al link postato precedentemente), vengono dichiarate le variabili e i browser ecc, mentre in "browser_css.js" ci sono le funzioni per caricare le pagine css a seconda del browser.

    Questo è il mio "browser_css.js":

    function browser_css
    {
    d = document;
    if ( ie5mac ) {
    d.write('<link rel = "stylesheet" type = "text\/css" href = "/css/ie5mac.css" />');
    }
    else if ( saf ){
    d.write('<link rel = "stylesheet" type = "text\/css" href = "safari.css" />'); /*Questa l'ho modificata io per vedere se effettivamente funzionava. I CSS sono tutti nella root principale. */
    }
    else if ( document.layers ){
    d.write('<link rel = "stylesheet" type = "text\/css" href = "/css/ns4x.css" />');
    }
    else if ( ie4 ){
    d.write('<link rel = "stylesheet" type = "text\/css" href = "/css/ie4.css" />');
    }
    else if ( moz && ( nu < 1 ) ){
    d.write('<link rel = "stylesheet" type = "text\/css" href = "firefox.css" />');/*Questa l'ho modificata io per vedere se effettivamente funzionava. I CSS sono tutti nella root principale. */
    }
    else {
    d.write('<link rel = "stylesheet" type = "text\/css" href = "firefox.css" />');/*Questa l'ho modificata io per vedere se effettivamente funzionava. I CSS sono tutti nella root principale. */
    }
    }

    ...
    Non riesco a capire come mai mi carichi sempre i css di default (sfondi e style)...

  3. #3

    risposta

    salve di nuovo.

    volevo chiedere, prima di postare questa richiesta su un altro canale di html.it, se avete altre soluzioni ben vengano (tipo in asp non so...).
    avevo trovato questo script in java che mi pareva fosse fatto bene e funzionasse "al volo"...

  4. #4
    Originariamente inviato da Pimpinelli
    Questo è il mio "browser_css.js":
    codice:
    function browser_css
    {
    	d = document;
    	if ( ie5mac ) {
    		d.write('<link rel = "stylesheet" type = "text\/css" href = "/css/ie5mac.css" />');
    	}
    	else if ( saf ){
    		d.write('<link rel = "stylesheet" type = "text\/css" href = "/safari.css" />'); /*Questa l'ho modificata io per vedere se effettivamente funzionava. I CSS sono tutti nella root principale. */
    	}
    	else if ( document.layers ){
    		d.write('<link rel = "stylesheet" type = "text\/css" href = "/css/ns4x.css" />');
    	}
    	else if ( ie4 ){
    		d.write('<link rel = "stylesheet" type = "text\/css" href = "/css/ie4.css" />');
    	}
    	else if ( moz && ( nu < 1 ) ){
    		d.write('<link rel = "stylesheet" type = "text\/css" href = "/firefox.css" />');/*Questa l'ho modificata io per vedere se effettivamente funzionava. I CSS sono tutti nella root principale. */
    	}
    	else {
    		d.write('<link rel = "stylesheet" type = "text\/css" href = "/firefox.css" />');/*Questa l'ho modificata io per vedere se effettivamente funzionava. I CSS sono tutti nella root principale. */
    	}
    }
    ...
    Non riesco a capire come mai mi carichi sempre i css di default (sfondi e style)...
    Se, come hai detto, i tuoi css sono nella root del sito, DEVI mettere il carattere / prima del nome del file css!
    (es.: href="/firefox.css")
    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  5. #5
    grazie homezappa per l'interessamento,

    ho messo la / davanti al nome del file css, ma sembra proprio che ignori tutto.
    Cioè, ho come il presentimento che i tag javascript inseriti nella pagina html ( <script type = "text/javascript" src = "browser_detection.js"></script>
    <script type = "text/javascript" src = "browser_css.js"></script>), non vengano neppure considerati.

    Infatti ho creato il file firefox.css completamente vuoto (senza formattazione di testo, margini...) proprio per vedere se vedendolo con firefox mi cambiava l'aspetto ma non succede niente.

    Grazie nuovamente per le risposte.

  6. #6
    Originariamente inviato da Pimpinelli
    Cioè, ho come il presentimento che i tag javascript inseriti nella pagina html ( <script type = "text/javascript" src = "browser_detection.js"></script>
    <script type = "text/javascript" src = "browser_css.js"></script>), non vengano neppure considerati.
    Un solo dubbio:
    i files browser_detection.js e browser_css.js sono nella stessa cartella della pagina che li include?
    poi:
    Per me (correggetemi se sbaglio!) non dovrebbe andarci il blank fra "type", "=" e "text/javascript" e anche fra "src", "=" e "nomedelfile.css"
    Io scriverei così:
    codice:
    <script type="text/javascript" src="/cartella_dove_sono_i_js/browser_detection.js"></script>
    <script type="text/javascript" src="/cartella_dove_sono_i_js/browser_css.js"></script>
    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  7. #7

    risposta

    Allora, si i file sono tutti nella root del principale del sito (ovvero i file .html .js .css sono tutti insieme... so che può essere brutto ma per me è più semplice vedere se funziona a creare le cartelline sono sempre a tempo credo.)

    Ora provo ad eliminare gli spazi nella funzione di richiamo degli script...

    io dovrei scrivere così se non sbaglio (in quanto non ho sottocartelle):
    <script type="text/javascript" src="/browser_detection.js"></script>
    <script type="text/javascript" src="/browser_css.js"></script>

  8. #8
    Una cosa:
    nella pagina, la function browser_css quando la esegui/chiami?

    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  9. #9

    risposta al topic

    Innanzi tutto ti ringrazio nuovamente per il supporto.

    Ho tolto gli spazi non necessari dalla funzione di richiamo... ma pare non cambi niente in quanto non va a caricarmi i css secondo il browser...

    la function "browser_css" l'ho messa (cioè la richiamo) nell'head immediatamente sotto il titolo della pagina. Avevo provato anche a metterala dopo il richiamo dei css prima di chiudere l'head, ma era uguale...

    Ora che ci penso (ma ho fatto cmq una prova e non cambia niente) ho dovuto togliere questo tag nell'index:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    perché altrimenti non riuscivo ad eseguire un operazione (la centratura in orizzontale mediante tabella; x centrare la pagina al centro del monitor)...

    Non vorrei che senza quelle stringhe non riconoscesse il documento come "stadard XHTML" e quindi non eseguire determinate funzioni... non lo so... cmq come ripeto ho già fatto una prova riinserendo quelle stringhe e non mi cambiava nulla... o forse sbaglio io qualcosa?

  10. #10

    risposta al topic

    Salve gente,
    ho provato e riprovato ma niente da fare...
    allora ho pensato che, visto che il sito su WinXP (internet explorer, firefox) è perfetto, mentre su MacOSX con safari no, sarebbe stato opportuno visualizzarlo anche con un altro browser...
    così ho installato sia firefox che camino su Mac...

    e cosa ho scoperto? che non è tanto il browser a difettare, ma è proprio il sistema operativo che interpreta diversamente il codice...

    quindi adesso vi pongo una domanda un po' complicata.
    come faccio a fare in modo che (invece di leggere a questo punto il browser) venga letto l'OS e di conseguenza mi carichi un altro css...???

    qualcuno di voi ha la soluzione pronta... (sia java che asp...)

    Grazie a tutti in anticipo.
    e come sempre buon lavoro.

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.