Uso di iFrame per evitare le stranezze di IE

0

Sto lavorando con un team su un'applicazione ASP.NET MVC C # EF che richiede materiali di assistenza approfonditi. I materiali della guida verranno archiviati su un sito dell'helpdesk (FreshDesk) in modo che possano essere acceduti come una Knowledge Base e quindi non dobbiamo duplicare il materiale della Guida sia lì che all'interno della app.

In un proof of concept test, abbiamo un codice che tradurrà i link href da diversi punti nell'applicazione in url alle pagine Freshdesk, con ancore se necessario. Il materiale della Guida si apre in una finestra separata in modo che le persone possano continuare a utilizzare l'app. In genere funziona bene.

In base ai requisiti che deve funzionare per Chrome e IE.

Utilizzando Chrome, la finestra della Guida separata si apre piacevolmente dall'interno dell'app e la stessa finestra viene riutilizzata ogni volta che viene fatto clic su un nuovo collegamento della Guida. Se sposti la finestra della Guida separata non ha importanza.

Usando IE, abbiamo riscontrato un problema in cui una nuova finestra si apre ogni volta che si fa clic su un nuovo collegamento della Guida. Abbiamo capito che uno fuori, tuttavia, la soluzione attuale ha alcuni problemi rimanenti. Uno è che la soluzione richiede la chiusura della finestra della Guida e riaprirla ogni volta. Si riapre in una posizione fissa, che sarà frustrante per gli utenti, perché vorranno spostare la finestra della Guida. Quindi ora stiamo acquisendo la posizione della finestra della Guida prima che si chiuda e riutilizzando tali informazioni quando viene riaperta. Funziona, un po ', ma ha più problemi.

Ecco il problema per me. Sono preoccupato che la soluzione IE non sia robusta e affidabile; e che maggiore è la gestione speciale che dobbiamo aggiungere per IE più si imbatteranno in problemi sul campo.

Un'alternativa è di rendere la pagina di aiuto una pagina cshtml separata e recuperare e visualizzare la pagina di FreshDesk in un iFrame. Il risultato desiderato è che attraverso cshtml / iFrame l'utente possa arrivare a una specifica pagina di aiuto di Freshdesk basata sul link Guida dell'applicazione, e da lì, se lo desidera, può navigare nella knowledge base di Freshdesk usando un indice e una funzione di ricerca , tutto attraverso l'iFrame.

La mia domanda è, perché usare un iFrame NON è la soluzione migliore per questo caso d'uso, o, cosa potrebbe andare storto nell'usare un iFrame, rispetto alla gestione speciale richiesta per IE?

    
posta wayfarer 19.05.2017 - 03:19
fonte

1 risposta

1

Ecco alcuni potenziali problemi con un'integrazione in stile iFrame:

  • L'applicazione FreshDesk potrebbe non supportare la visualizzazione delle sue pagine all'interno di un iFrame, ad es. se ha misure anti-clickjack che non possono essere disattivate.

  • Se riscontri problemi di IE in cui la risoluzione richiede l'attivazione della modalità di compatibilità, dovrai anche attivare la modalità di compatibilità per la tua applicazione.

  • A seconda delle impostazioni del browser, il browser potrebbe non consentire i cookie dal contenuto iFramed, che potrebbe interferire con la gestione delle sessioni di FreshDesk.

  • Potrebbero esserci problemi estetici con iFrame, ad es. un piccolo spazio bianco fastidioso che causa due serie di barre di scorrimento. Di solito riesci a trovare un modo per aggirare questo genere di cose, ma è un PITA.

  • Gli utenti finali non potranno aggiungere ai segnalibri alcuna delle pagine di FreshDesk o utilizzare i pulsanti di navigazione come back, forward e history. Inoltre, non saranno in grado di tagliare e incollare l'indirizzo in un'email se desiderano condividere qualcosa con un collega.

  • Nascondendo l'indirizzo del contenuto iFramed, potresti renderti vulnerabile a un attacco MITM, poiché l'utente finale non può sapere se il contenuto è servito su HTTP o HTTPS.

  • Se l'utente preme il pulsante di aggiornamento del browser, può ripristinare il contenuto dell'iframe alla sua pagina di destinazione originale. Questo potrebbe essere molto frustrante se le tue connessioni di rete non sono affidabili al 100%.

Secondo me, se hai già una soluzione con una nuova finestra con IE, e funziona, continua così. Dopo tutto, sai quali sono i problemi con la tua attuale soluzione; se passi a qualcosa di totalmente diverso, non sai mai se ci saranno problemi ancora peggiori con esso e IE.

    
risposta data 20.05.2017 - 02:53
fonte

Leggi altre domande sui tag