我有一个本地程序,它将 JSON 对象写入文件,以便 JavaScript 可以获取其数据并进行处理。使用<input>
对象选择文件:
<form id = "getfiles">
<input type = "file" multiple id = "files" />
</form>
用下面的 JS 函数setInterval
每 300ms 重复一次。但是,当文件发生变化时,只有谷歌浏览器会重新加载文件并处理新的内容;我必须在 IE 10 和 Firefox 20 中手动重新选择页面上的文件。
function speakText()
{
var thefile = document.getElementById('files').files[0];
var lastChanged = thefile.lastModifiedDate;
var reader = new FileReader();
reader.onload = function(event)
{
var lcd = document.getElementById("last_change_date");
if (!lcd)
{
var spanLastChanged = document.createElement("span");
spanLastChanged.id = "last_change_date";
spanLastChanged.innerText = lastChanged;
console.log(lastChanged);
document.body.appendChild(spanLastChanged);
}
else
{
// compare lastChanged with last_change_date
var last_known_change = Date.parse(lcd.innerText);
// var last_known_change = Date.parse(thefile.lastModifiedDate);
if (last_known_change !== Date.parse(lastChanged))
{
console.log("Something is new since " + lcd.innerText);
var fileContent = event.target.result;
var commands = JSON.parse(fileContent);
handleJSON(fileContent);
lcd.innerText = lastChanged;
}
}
}
reader.readAsText(thefile, "UTF-8");
}