2010-05-16 20 views
7

Sto cercando di capire in uno script IE (javascript o vbscript) quale controllo ActiveX gestirà uno specifico tipo mime, "image/tiff " in questo caso. Questo è facile da fare in altri browser che utilizzano plug-in;Script del browser IE per determinare quale (se presente) controllo ActiveX gestirà lo specifico tipo mime

navigator.mimeTypes [ "image/tiff"]. EnabledPlugin.name

che sarebbe tornato qualcosa come

QuickTime Plug-in XXX

I' Ho trovato molti esempi per capire se è caricato un controllo ActiveX specifico, ma poiché sono disponibili diversi controlli ActiveX in grado di gestire le immagini tiff di cui ho bisogno per sapere quale, se esiste, è registrato per gestire questo tipo MIME.

Il problema che sto cercando di risolvere è che QuickTime vuole sempre registrarsi come visualizzatore di tiff predefinito, ma fa un lavoro terribile, risultando in molte chiamate di supporto. Sfortunatamente, rilevare semplicemente che QuickTime è installato non è abbastanza buono dato che l'utente può avere anche un altro tiff viewer installato (come Alternatiff) come visualizzatore di tiff predefinito o l'utente potrebbe aver configurato QuickTime per non essere il visualizzatore predefinito per le immagini tiff in modo che il browser potrebbe utilizzare un'app helper per visualizzare l'immagine.

Non significa essere difficile ma prima che qualcuno suggerisca soluzioni alternative per la reingegnerizzazione;

  • Sì, lo so che potrei forzare l'utente ad utilizzare un visualizzatore ActiveX specifico in IE o per utilizzare un visualizzatore tiff Java ma preferirei far loro utilizzare un visualizzatore di loro scelta, piuttosto che costringerli ad installare un visualizzatore di mia scelta, soprattutto dal momento che il loro spettatore può essere un'app di supporto che carica l'immagine tiff in un flusso di lavoro aziendale all'interno del loro ufficio
  • sì, so che ci sono altri formati di immagine che potrei usare ma tiff è lo standard de facto per l'imaging di documenti e questo è ciò che la maggior parte di questi utenti preferisce usare. Il problema non è il formato di immagine, è che QuickTime proprio non è tagliato come un visualizzatore tiff

Grazie in anticipo per eventuali suggerimenti o soluzioni ...

+0

Qual è il risultato finale - per fornire loro una sorta di avviso se QuickTime è il gestore predefinito? – BradBrening

+0

Perché non racchiudere in PDF - se si tratta di una scansione, è possibile modificare facilmente le intestazioni di tiff in pdf per ccitt g4 ad esempio. In alternativa, avvolgere un collegamento attorno a un'immagine tiff che dice Click me – mplungjan

+0

Ciao Brad, sì il risultato finale sarebbe fornire loro un avvertimento e un collegamento a una pagina con istruzioni su configurazioni alternative che funzionerebbero. – Jay13

risposta

2

Almeno con le capacità attuali di Internet Explorer, è praticamente impossibile raggiungere l'obiettivo dichiarato con Javascript.

Tuttavia, IE supporta anche VBScript e controlli ActiveX con firma. Si potrebbero usare quelli per costruire un widget lato client per ottenere l'associazione di tipo MIME predefinita direttamente dal registro. Windows li mantiene in "HKEY_LOCAL_MACHINE \ Software \ CLASSES \". Il RFC2936 - HTTP MIME Type Handler Detection dà un suggerimento simile e ha anche un esempio di codice.

Se quanto sopra sembra troppo macchinoso, è possibile espandere la politica iniziale di non limitare l'utente a un visualizzatore specifico. Perché non andare fino in fondo e consentire agli utenti di stare con QuickTime se lo hanno in primo luogo. La macchina dell'utente è territorio privato e non hai modo di sapere perché QuickTime è presente.

Spero che questo ti aiuti a muoverti nella giusta direzione.

+0

Hmmm, sembra un po 'pesante per scrivere un controllo ActiveX per capirlo. Avevo pensato di farlo prima, ma sembrava troppo lavoro, tuttavia, in base al riferimento che hai citato sembra che sia l'unica soluzione possibile. Per quanto riguarda il fatto di lasciarli stare con QuickTime, non li sovrascriverò mai perché, come dici tu, è la loro macchina a fare con quello che vogliono. Il mio intento è semplicemente di notificare loro che probabilmente avranno problemi a visualizzare le immagini Tiff servite dalla mia applicazione perché QuickTime Viewer non supporta l'intero standard Tiff. Grazie Saul ... – Jay13