- Learn
- Guida AJAX
- Assegnazione cross browser
Assegnazione cross browser
Ciò che contraddistingue Internet Explorer dagli altri browser è l’assegnazione dell’oggetto XMLHttpRequest
. Non solo è parte di un ActiveX e quindi esposto maggiormente a restrizioni sulla configurazione del browser dell’utente, ma è anche supportato, seppur malamente, dalla versione 4.
Volendo evitare di mostrare errori a chi naviga con questa vecchia versione è necessario verificare che la stringa MSIE 4 non sia presente nel nome che contraddistingue il browser, ovvero navigator.userAgent
, che per sicurezza ancora maggiore viene assegnato ad una variabile dopo essere stato cambiato nel corrispettivo in maiuscolo.
Prima ancora è necessario controllare che il supporto all’oggetto XMLHttpRequest
sia nativo o che il browser sia almeno di tipo Internet Explorer.
Listato 1. Dichiarazione dell’oggetto XMLHttpRequest cross-browser
// funzione per assegnare l’oggetto XMLHttpRequest
// compatibile con i browsers più recenti e diffusi
function assegnaXMLHttpRequest() {
// lista delle variabili locali
var
// variabile di ritorno, nulla di default
XHR = null,
// informazioni sul nome del browser
browserUtente = navigator.userAgent.toUpperCase();
// browser standard con supporto nativo
// non importa il tipo di browser
if(typeof(XMLHttpRequest) === “function” || typeof(XMLHttpRequest) === “object”)
XHR = new XMLHttpRequest();
// browser Internet Explorer
// è necessario filtrare la versione 4
else if(
window.ActiveXObject &&
browserUtente.indexOf(“MSIE 4”) < 0
) {
// la versione 6 di IE ha un nome differente
// per il tipo di oggetto ActiveX
if(browserUtente.indexOf(“MSIE 5”) < 0)
XHR = new ActiveXObject(“Msxml2.XMLHTTP”);
// le versioni 5 e 5.5 invece sfruttano lo stesso nome
else
XHR = new ActiveXObject(“Microsoft.XMLHTTP”);
}
return XHR;
}
La funzione mostrata è solo una delle tante presenti in rete per istanziare un oggetto XMLHttpRequest
a seconda del browser e della sua versione ma è una delle poche che raramente potrà fallire o generare errori anche su computer non ancora aggiornati.
Il concetto alla base è tentare di filtrare i browser riconosciuti come validi per l’utilizzo di AJAX e sfruttare l’eventuale ritorno nullo a proprio favore, inizializzando l’intero applicativo AJAX solo se l’oggetto è riconosciuto come valido.
Un esempio di quanto appena detto potrebbe essere questo:
Listato 2. Riconoscere un browser abilitato ad AJAX
onload = function() {
var ajax = assegnaXMLHttpRequest();
if(ajax) {
// applicativo AJAX
}
}
dove qualora l’oggetto non dovesse essere stato assegnato o dovesse essere ancora nullo o false, non si disturberebbe l’utente arrivato con messaggi di errore o con la comparsa del triangolo giallo solitamente mostrato ogni qualvolta siano presenti dei problemi nella pagina visualizzata.
Se vuoi aggiornamenti su Assegnazione cross browser inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Note sul desktop con Post-it Software Notes
Chi è abituato ad utilizzare i post-it sulla propria scrivania non può fare a meno di Post-it Software Notes, il programma […]