Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Aprire file da CD

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    3

    Aprire file da CD

    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

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133

    Re: Aprire file da CD

    Originariamente inviato da Erre
    ...
    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.
    ...
    A dire il vero mi sono un po perso, comunque se in locale funzionerebbe prova a usare ajax per fare la chiama al server, è solo una prova altirmenti non sapre forse prenderei in cosiderazione apletjava come linguaggio.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    3
    Grazie per la risposta, ma purtroppo non conosco Ajax e non so usare le Applet Java.

    Per adesso nel file html ci sono tag <a> tipo questo:

    IMr01&#95;0.pdf

    E la funzione JavaScript OpenFile è fatta così:

    function OpenFile(obj){
    var linkTo= new String(obj.href);
    var VL=new String(linkTo.substring(linkTo.lastIndexOf(':')-1,linkTo.lastIndexOf(':')) + ':');
    if (confirm('Warning!\n\nTo follow this link you need the CD/DVD in your disk drive.\n\n Continue?')){
    try{
    var VLlink=new String(linkTo.substring(linkTo.lastIndexOf(':')-1,linkTo.lastIndexOf(':')) + ':');
    var VLlocal=prompt('Please insert your CD/DVD drive letter.',VLlink);
    if (VLlocal != null) {
    VLlocal=VLlocal.substring(0,1) + ':'; linkTo=linkTo.replace (VLlink,VLlocal);
    window.open(linkTo,'myWindow','width=640,height=48 0, scrollbars=1,location=1,resizable=1');
    }
    }
    catch (e) {alert(e.name)}
    return false;
    } else {return false;}
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    3
    Scusate. Ho fatto casino coi copia-incolla.
    Il codice JS della funzione OpenFile è il seguente:

    function OpenFile(obj){
    if (confirm('Warning!\nTo follow this link you need the CD/DVD in your disk reader.\n\n Continue?'))
    {
    try{
    //memorizzo il link che trovo in href nella variabile linkTo
    var linkTo= new String(obj.href);

    //memorizzo la driveLetter del path nella variabile VLink
    var VLlink=new String(linkTo.substring(linkTo.lastIndexOf(':')-1,linkTo.lastIndexOf(':')) + ':');

    //memorizzo la driveLetter indicata dall'utente nella variabile VLlocal
    var VLlocal=prompt('Please insert your CD/DVD drive letter.',VLlink);

    if (VLlocal != null) {
    //aggiungo i ':' dopo la driveLetter locale
    VLlocal=VLlocal.substring(0,1) + ':';

    //sostituisco la driveLetter indicata dall'utente a quella presente nel path originale
    linkTo=linkTo.replace (VLlink,VLlocal);

    //apro il file in un'altra pagina
    window.open(linkTo,'','width=640,height=480,status =1,toolbar=1,scrollbars=1);
    }
    } catch (e) {alert(e.name)}
    return false;
    }
    else {return false;} //questo è l'else del confirm all'inizio
    }

    Spero che ora sia un po' più chiaro.
    Erre

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 © 2025 vBulletin Solutions, Inc. All rights reserved.