gpt4 book ai didi

javascript - nw.js:如何构建文件对话框来打开文件?

转载 作者:行者123 更新时间:2023-12-03 07:50:43 25 4
gpt4 key购买 nike

我的应用程序是使用占位符构建的,单击“加载”时会直接读取文件。

<button id="loadbutton" type="button" class="btn btn-success" onclick="showTheFile()">Load</button></a>

showthefile() 执行一些操作,然后调用...

var keyMapLoc = '\\path\\to\\file.txt';
function readKeys(ffile) {
// read the keyfile
var ffile = ffile || keyMapLoc;
return fs.readFileSync(ffile, 'utf8');
}

这会将文件读入应用程序中进行解析,yotta yotta。

I followed these instructions并使用了演示。打开应用程序后,文件对话框就会弹出,我得到了。

<html>
<body>
<input style="display:none;" id="fileDialog" type="file" />
<script>
function chooseFile(name) {
var chooser = document.querySelector(name);
chooser.addEventListener("change", function(evt) {
console.log(this.value);
}, false);

chooser.click();
}
chooseFile('#fileDialog');
</script>
</body>
</html>

但是,尽管我了解如何弹出文件对话框并且了解如何读取/解析文件,但我很难将这个非常抽象的示例应用到我现有的 nwjs 应用程序中。

根据我的应用程序的上述示例,我应该如何混合演示,以便“加载”按钮按预期运行以加载文件?

最佳答案

由于您没有提供代码,我将停止演示。你需要做什么触发文件输入元素的 click 事件,然后触发change 事件,调用 readKeys()

<!DOCTYPE html>
<html>
<body>
<input style="display:none;" id="fileDialog" type="file"/>

<button id="loadButton" type="button" class="btn btn-success"
onclick="showTheFile()">Load</button>

<script>
var fs = require('fs');
var keyMapLoc = '\\path\\to\\file.txt';
var chooser = document.querySelector("#fileDialog");

// Set up the file chooser for the on change event
chooser.addEventListener("change", function(evt) {
// When we reach this point, it means the user has selected a file,
// so invoke readKeys().
// this.value contains the path to the selected file
console.log(readKeys(this.value));
}, false);

function showTheFile() {
// Trigger click event on the chooser, this will bring up the
// dialog
chooser.click()
}

function readKeys(ffile) {
var ffile = ffile || keyMapLoc;
return fs.readFileSync(ffile, 'utf8');
}
</script>
</body>
</html>

关于javascript - nw.js:如何构建文件对话框来打开文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35001769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com