Ciao a tutti,
ho un programmino VB6 che permette di creare un file HTML con l'indice del contenuto di un CD/DVD. L'indice, attraverso opportuni css ed un po' di javascript, visualizza la struttura ad albero (espandibile/comprimibile) di file e cartelle presenti sul CD.
Una volta creato, quel file HTML viene salvato su un server aziendale affinchè chi ha bisogno di sapere cosa c'è su quel CD può andarsi a consultare l'indice dei file senza la necessità di avere il disco nel proprio PC.
Fin qui tutto bene.
Il problema nasce quando qualcuno prende quel CD e vuole servirsi del file di indice per "navigare il disco". Quindi i nomi dei file e delle cartelle presenti nell'indice devono essere linkati (finora nell'html ci sono tag <a href="mypath" ...>).
Le condizioni al contorno sono:
- il contenuto del CD può essere qualsiasi;
- la "driveLetter" assegnata al drive del CD può variare da PC a PC (quindi bisogna lavorare sull'href presente nel tag <a>);
- il file dell'indice deve restare sul server (e quindi, non essendo in locale, i browser mettono in atto i meccanismi di protezione...);
- cliccando sul link l'utente deve vedersi aprire un'altra pagina (quindi non devo fare un redirect).
Premesso tutto questo, ho fatto un po' di prove e posso già dire che NON posso usare gli ActiveX perchè i livelli di protezione del browser di default (IE) sono stabiliti da policy aziendali che giustamente ne impediscono l'azione.
Quindi me la sono gestita in questo modo:
sull'onclick del tag <a> c'è la chiamata ad una funzione JS che:
1) con un "confirm" dice all'utente che per usare quel link DEVE essere in possesso del CD, altrimenti non se ne fa nulla.
2) confermando il messaggio precedente, salta fuori un box "prompt" che chiede all'utente quale sia la sua driveLetter (un controllo automatico avrebbe richiesto un ActiveX Scripting.FileSystemObject).
3) attraverso la manipolazione della stringa presente nell'attributo href, sostituisco (se è il caso) la driveLetter originale con quella che ha indicato l'utente.
4) con un comando window.open visualizzo la nuova finestra che conterrà il file presente sul CD.
Tutto questo funziona bene finchè gira nell'IDE che uso per lo sviluppo (XMLSpy) ed anche su Google Chrome. Invece NON funziona su IE (almeno sul 7.0 e l'8.0). Vi funzionerebbe soltanto se il file HTML dell'indice si trovasse in locale anzichè su un server remoto.
Ho provato a mettere anche il "Mark Of The Web", ma non mi ha risolto il problema.
Chiaramente non posso fare variazioni alle policy aziendali, nè alla dotazione software di default.
Qualcuno conosce qualche alternativa?
Grazie!
Erre