Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    25

    Come costruire un link che obblighi l'apertura con un determinato Browser

    In azienda su tutti i pc abbiamo IE vecchissimo ed è il predefinito, quindi quando mandi un link gli utenti si trovano ad aprirlo con questo Browser con notevoli problemi.

    Attualmente mando il link con l’avviso “copiate questo indirizzo e incollatelo all’interno della barra di Firefox e o Chrome”.

    Ma non può essere una soluzione l'operazione copia e incolla ha una notevole difficoltà tecnica e quindi ricevo n telefonate da utenti che “non riescono”.

    Mi chiedo, posso costruire un link che forzi l’apertura dello stesso con Chrome o in subbordine con Firefox (in tutti i pc è presente in aggiunta a IE anche uno dei due ma non in tutti lo stesso!!!!).



    GRAZIE!!!!

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,655
    non si può fare inviando un link, è un'operazione fattibile solo lato macchina che si invoca tramite un file bat.
    per dirla tutta ho letto che sarebbe possibile forzare edge, ma non ho trovato documentazione per altri browser.

    in alternativa puoi identificare il client tramite HTTP_USER_AGENT (late server) o userAgent (lato client), quindi bloccare o avvisare l'utente di cambiare browser.

    un po' laborioso ma efficace.

    per la prima soluzione ti serve un linguaggio dinamico, ne usi uno?
    per la seconda serve javascript

    quale vuoi tentare?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    25
    Non posso! le policy aziendali non lo consentono!!!
    Avevo provato a costruire link (file lnk) alla pagina e che si aprisse con il browser coretto ma non partono per via del sistema “antivirus”.

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,682
    In linea di massima quoto ciò che ha indicato Vincent. Tuttavia da browser è possibile tentare con un oggetto ActiveX che (con i dovuti consensi da parte dell'utente) lanci l'apertura della pagina in un altro browser.

    Avevo provato a costruire link (file lnk) alla pagina e che si aprisse con il browser coretto ma non partono per via del sistema “antivirus”.
    Se fosse una semplice pagina html potrebbe funzionare?

    Ho cercato un po' e ho fatto diversi test prima di arrivare ad una possibile soluzione. La cosa va presa comunque con le pinze

    L'idea è quella di realizzare una "splash page", da aprire possibilmente in locale, in cui è contenuto il link o i link da te inseriti, che punteranno alle pagine vere e proprie. L'utente quindi riceverà da te il file splashpage.html che potrà aprire col browser che meglio gli pare. Nel caso sia usato IE, si attiverà (con i dovuti consensi) l'esecuzione dell'ActiveX che forzerà i link ad aprirsi con un altro browser, diversamente i link potranno essere aperti comunque normalmente.

    Questa è l'idea di base, sempre che le varie versioni dei vecchi IE ingoino senza troppi problemi la pastiglia. Io ho potuto provare solo su IE11 con win10 e su IE9 con vista, tutto a dovere. Sarà però opportuno che tu faccia tutti i dovuti test del caso se ritieni che possa essere una soluzione applicabile.

    Ho studiato la cosa in questo modo:
    - si crea la splashpage (una normale pagina html con qualche iniezione di steroidi JavaScript)
    - questa è studiata per poter inserire dei link in modo semplice applicando una classe snobba_ie, JavaScript farà il resto
    - se la pagina è aperta su IE allora sarà appeso un testo a ciascun link, che avvertirà di acconsentire per aprire il link su altro browser
    - tuttavia, se la pagina viene aperta su un browser NON-IE, i link funzioneranno normalmente
    - questa pagina utilizza un oggetto ActiveX che, come impostazione di default, dovrebbe venire bloccato da IE
    - aprendo il file in locale viene chiesta quindi conferma, all'avvio per eseguire script e controlli ActiveX, quindi al click sui link per consentire l'interazione del controllo ActiveX
    - se l'utente da il consenso, sarà tentata l'apertura del link rispettivamente con Chrome o con Firefox
    - in difetto, il link potrà essere comunque aperto sul browser corrente

    E' chiaro che l'utente dovrà essere istruito per confermare opportunamente i consensi. Per un non-addetto ai lavori potrebbe comunque essere più semplice che fare un copia/incolla di un qualsivoglia url nella barra degli indirizzi di un qualsivoglia altro browser.

    Si potrebbe anche pensare di mettere online la splashpage (e magari studiare un sistema per passare dinamicamente gli url dei link), ma in tal caso le restrizioni di sicurezza sarebbero molto più restrittive, quindi il browser andrebbe configurato opportunamente e il procedimento, per l'utente comune, diventerebbe impraticabile.

    Aprendo la splashpage in locale (da quel che ho provato) dovrebbe funzionare come descritto ma, ripeto, sarebbero da fare dei test ad hoc; i pc degli utenti potrebbero anche essere configurati diversamente e in questo caso il risultato potrebbe fallire, anche se i link si aprirebbero comunque sul browser corrente.

    Qui un esempio della splashpage:

    codice:
    <!DOCTYPE HTML>
    <html lang="it">
       <head>
          <title>Splash page to open links with another browser than IE</title>
          <meta charset="utf-8">
          <style>
             .apri_con_altro_browser:after{
                content: ' (acconsentire per aprire con altro browser)';
                font: .7em sans-serif;
                color: red;
             }
          </style>
       </head>
       <body>
       
          <!-- Applicare la classe snobba_ie agli elementi link di cui si vuole forzare l'apertura su altro browser -->
          <a href="https://www.html.it/" class="snobba_ie">link</a>
          <br>
          <a href="https://www.google.com/" class="snobba_ie">altro link</a>
          <br>
    
          <script>
             
             (function(){
                                                            
                var a = document.getElementsByClassName('snobba_ie'), i = a.length;        // Rilevo tutti i link .snobba_ie presenti sulla pagina
                                                                                           // Sniffing per l'uso di IE
                if (navigator.userAgent.indexOf('MSIE ') > -1 || navigator.userAgent.indexOf('Trident/') > -1){
                   while(i--){                                                             // Preparo e segnalo i link che dovrebbero essere aperti su altro browser
                      a[i].className += ' apri_con_altro_browser';
                      a[i].onclick = apriURL;
                   }
                }
             })();
             
             function apriURL(e){
                var url = this.href;
                var shell;
                
                e.preventDefault();
                
                try {
                   shell = new ActiveXObject('WScript.Shell');                             // Provo ad assegnare un oggetto ActiveX
                                                                                           // Una finestra di dialogo dovrebbe richiedere la conferma per l'uso di ActiveX
                } catch(err) {                                                             // Se non si da il consenso, dovrebbe avvenire un errore
                   location.href = url;                                                    // per cui posso verificare questo e proseguire con l'apertura del link sullo stesso browser
                   return;                                                                 // e mi fermo qui (IE vince)
                }
                
                try {                                                                      // Se l'utente da il consenso per l'uso di ActiveX
                   shell.run('Chrome '+ url);                                              // provo ad aprire il link con Chrome
                } catch(err) {                                                             // Se non riesco (CH non è stato trovato)
                   try {
                      shell.run('Firefox '+ url);                                          // il fallback è Firefox
                   } catch(err) {                                                          // Se non riesco (FF non è stato trovato)
                                                                                           // chiedo e nel caso apro il link sul browser corrente (IE vince ancora)
                      if (confirm('Non riesco ad aprire altri browser. \n\nAprire comunque il link sul corrente browser?')) {
                         location.href = url;
                      }
                   }
                }
             }
    
          </script>
       </body>
    </html>
    .
    Fai qualche prova e fai sapere. Non vedo molte altre possibili soluzioni.

    Buon proseguimento
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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.