【发布时间】:2021-07-28 02:18:03
【问题描述】:
有没有办法在浏览器中监视文件更改?
工作流程是:
1) 用户打开文件
2) webapp 写入文件
3) 本地安装的应用程序读取文件并写入一些更改
4) webapp 读取最后的变化
5) 最终再次进入第 2 步
这应该在浏览器中完成。
目前我有一个用户必须多次按下的按钮,但是:
1) 我希望这可以自动完成,无需点击 2) Chrome 会缓存文件,因此不会读取进一步的更改。
最好的方法是什么?
这是我现在正在做的事情:
https://codepen.io/muaddibber/pen/OZJgYQ
window.onload = function() {
var fileInput = document.getElementById('fileInput');
var fileDisplayArea = document.getElementById('fileDisplayArea');
fileInput.addEventListener('change', function(e) {
var file = fileInput.files[0];
var textType = /text.*/;
if (file.type.match(textType)) {
var reader = new FileReader();
reader.onload = function(e) {
fileDisplayArea.innerText = reader.result;
}
reader.readAsText(file);
} else {
fileDisplayArea.innerText = "File not supported!"
}
});
}
我打开一个文件 prova.txt,它可以工作。
然后我在本地编辑文件并重新打开它:它没有改变,chrome仍然显示旧版本。
【问题讨论】:
-
浏览器没有(也不应该)对用户本地文件系统进行这种访问
-
用户选择文件,然后当再次按下按钮时它应该重新加载,但 chrome 缓存文件。在边缘它工作。也许我可以读取前 N 个字节,等待,然后读取其余部分?
-
没有代码,所以不知道你在做什么——但是浏览器不能像那样“监控”本地文件,所以你不得不弄清楚为什么 chrome 显然会“缓存”一些东西
-
在此处发布您的 js 代码或 webapp 链接。
-
在答案中添加了示例
标签: javascript html