2017-08-28 6 views
1

Ich möchte ein Bild als Schaltfläche verwenden, die einen Dateidialog in NW.JS öffnet, wie kann ich das tun?Wie kann ich einen Dateidialog über einen Button in NW.JS auslösen?

Ich habe diese HTML

<button id="open" style="background: none;"><img src="images/open.png" style="width:20px;background:none;"></button></div> 
<input style="display:none;" id="fileDialog" type="file" /> 

Und dieses JS

function chooseFile(name, handleFile) { 
    const chooser = document.querySelector(name); 
    chooser.onchange = function() { 
     for (const f of this.files) { 
      console.log(f.name); 
      console.log(f.path); 
      handleFile(f.name, f.path); 
     } 
    }; 
    chooser.click(); 
} 
chooseFile('#fileDialog', function(name, path){ ... /* do something with the file(s) */ }); 
+0

Sie könnten stattdessen die "benutzerdefinierte Dateieingabe" verwenden: https://stackoverflow.com/questions/5813344/how-to-customize-input-type-file – yuriy636

+0

Dies könnte nützlich sein: https: //www.npmjs. com/Paket/NW-Dialog. Es ist wie NW API für den Dateidialog. – sandcastles

Antwort

0

Hier komplette Arbeitsbeispiel:

<script> 
openbtn.addEventListener('click', e => opendlg.click()); 

opendlg.addEventListener('change', e => { 
    let files = e.target.value; 
    if (files) { 
     e.target.value = ''; // or you will not receive change-event next time on the same files 
     files.split(';').forEach(filepath => { 
      alert(filepath); 
     }); 
    } 

}); 
</script> 
Verwandte Themen