2012-04-06 20 views
6

Mi chiedo se è possibile mostrare un avviso o aprire un popup, che direbbe aggiornare l'IE all'ultima versione o utilizzare Firefox/Chrome/Safari invece, quando il browser è Internet Explorer IE8 o più ...Forza aggiornamento del browser se IE8 o precedente

Credo che dovrei usare quel codice qui sotto all'interno dei tag ...

<!--[if lt IE 9]> 
...i should use code here... 
<![endif]--> 

e 'intelligente al browser deceted con jQuery e jQuery carico lib? O è meglio usare solo javascript regolari per evitare ulteriori problemi con i browser molto vecchi?

+0

Questo strumento è solo giusto per il lavoro; usalo – Jon

+0

che è troppo severo, stai ignorando solo circa il 40% dei visitatori del mondo in questo modo – Rodolfo

+1

@Rodolfo Se blocca l'accesso a loro, allora sì che lo è. Ma se mostra solo un messaggio banner o modale che dice "il tuo browser non è aggiornato, esegui l'upgrade" allora sarà di aiuto. Dubito che la maggior parte degli utenti di IE capisca perfettamente cosa sia un browser. –

risposta

6

si hanno due opzioni:

  1. analizzare il il User-Agent String

    // Returns the version of Internet Explorer or a -1 
    // (indicating the use of another browser). 
    function getInternetExplorerVersion() { 
        var rv = -1; // Return value assumes failure. 
    
        if (navigator.appName == 'Microsoft Internet Explorer') { 
         var ua = navigator.userAgent; 
         var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); 
    
         if (re.exec(ua) != null) { 
          rv = parseFloat(RegExp.$1); 
         } 
        } 
    
        return rv; 
    } 
    
    function checkVersion() { 
        var msg = "You're not using Internet Explorer."; 
        var ver = getInternetExplorerVersion(); 
    
        if (ver > -1) { 
         if (ver >= 9.0) { 
          msg = "You're using a recent copy of Internet Explorer." 
         } 
         else { 
          msg = "You should upgrade your copy of Internet Explorer."; 
         } 
        } 
        alert(msg); 
    } 
    
  2. Uso commenti condizionali:

    <!--[if gte IE 9]> 
    <p>You're using a recent version of Internet Explorer.</p> 
    <![endif]--> 
    
    <!--[if lt IE 8]> 
    <p>Hm. You should upgrade your copy of Internet Explorer.</p> 
    <![endif]--> 
    
    <![if !IE]> 
    <p>You're not using Internet Explorer.</p> 
    <![endif]> 
    

Riferimento: Detecting Windows Internet Explorer More Effectively

5
<script> var ISOLDIE = false; </script> 
<!--[if lt IE 9]> 
    <script> var ISOLDIE = true; </script> 
<![endif]--> 

poi in seguito, dove mai si vuole tracciare la linea per supportare le vecchie versioni di IE nel codice:

<script> 

    if(ISOLDIE) { 
      alert("Your browser currently does not support this feature. Please upgrade."); 
      window.location = 'http://google.com/chrome'; 
    } 

</script> 

non è in genere una buona idea per rimuovere completamente il supporto IE8, che è perché penso che la soluzione di cui sopra sia un buon compromesso, perché è possibile aggiungerla ai componenti del tuo sito web/applicazione web che semplicemente non possono essere supportati per supportare IE8, ma allora potresti (eventualmente) supportare IE8 anche in altre aree del tuo sito web.

+0

Buono, ma è probabile che se qualcuno è su un vecchio Versione IE, sono un'impresa che fa affidamento su funzionalità specifiche di IE o un novizio del PC che non sa veramente cosa sia un browser Web e sa semplicemente di fare clic su "the blue e".In casi come questi, potrebbe essere meglio includere collegamenti per l'upgrade di IE e altri browser, piuttosto che un solo browser Web specifico in competizione. –

6

si potrebbe usare qualcosa come this

Il IE6-upgrade-avvertimento è un piccolo script (7.9kb) che visualizza un messaggio di avviso che informa l'utente cortesemente di aggiornare il browser a una versione più recente (link a IE più recente, Firefox, Opera, Safari, Chrome sono forniti).

La pagina Web è ancora visibile dietro uno sfondo trasparente, ma l'accesso ad esso è impedito. L'idea è di costringere gli utenti a effettuare l'aggiornamento da IE6 ed evitare che il sito Web derivi da una cattiva reputazione che il sito Web non viene visualizzato correttamente in IE6.

Lo script è completamente traducibile in qualsiasi lingua, molto facile da configurare (una riga di codice nella pagina Web e una configurazione del parametter).

Sebbene sia stato creato per essere utilizzato con utenti IE6, utilizzando i parametri corretti è possibile utilizzarlo per lo scenario.

2

C'è questo sito Web olandese che costringe IE6 e gli utenti inferiori ad aggiornare il loro browser, un piccolo aggiustamento al codice "If IE" che puoi bloccare da qualsiasi versione tu voglia.

http://wijstoppenook.nl/nl/

Scorrere verso il basso al punto 4 e fare clic su Download o "Voorbeeld" per una demo, il primo è un banner in alto, il secondo blocca completamente la pagina.

L'unico inconveniente, è tutto in olandese, quindi dovresti creare il tuo messaggio.

1

I commenti condizionali non sono più supportati in IE 10. WTF! Link

0

Sul tuo sito aggiungere il codice per index.html o index.php

Il suo funzionamento anche joomla e wordpress.

<!--[if IE 5]> 
<script language="Javascript"> 
<!-- 
alert ("It looks like you aren't using Internet Explorer 7. To see our site correctly, please update.") 
//--> 
</script> 
<![endif]--> 
<!--[if IE 5.0]> 
!-- 
alert ("It looks like you aren't using Internet Explorer 7. To see our site correctly, please update.") 
//--> 
</script> 
<![endif]--> 
<!--[if IE 5.5]> 
!-- 
alert ("It looks like you aren't using Internet Explorer 7. To see our site correctly, please update.") 
//--> 
</script> 
<![endif]--> 
<!--[if IE 6]> 
!-- 
alert ("It looks like you aren't using Internet Explorer 7. To see our site correctly, please update.") 
//--> 
</script> 
<![endif]--> 

<!--[if IE 7]> 
!-- 
alert ("It looks like you aren't using Internet Explorer 7. To see our site correctly, please update.") 
//--> 
</script> 
<![endif]--> 

<!--[if IE 8]> 
!-- 
alert ("It looks like you aren't using Internet Explorer 8. To see our site correctly, please update.") 
//--> 
</script> 
<![endif]--> 
Problemi correlati