如何将(li)元素中的数据保存到Electron应用程序的文本文件中?我的代码不起作用。 li元素动态工作,因此在输入另一个任务时创建一个元素。 saveFile()函数位于脚本底部附近。保存按钮会显示saveAs屏幕。问题是,li元素中的项目不会像他们应该那样保存到文本文件中。我该如何解决这个问题?
<!DOCTYPE html>
<html>
<head>
<title>Task List</title>
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/
css/materialize.min.css">
</head>
<body>
<p id="saved"></p>
<nav>
<div class="nav-wrapper">
<a class="brand-logo center">Task List</a>
</div>
</nav>
<ul id="taskList"></ul>
<button id='save'>Save File</button>
<button id='open'>Open File</button>
<script>
const electron = require('electron');
const {
ipcRenderer
} = electron;
const ul = document.querySelector('ul');
const fs = require('fs');
const {
dialog
} = require('electron').remote;
ipcRenderer.on('item:add', function(e, item) {
ul.className = 'tasks';
const li = document.createElement('li');
li.className = 'task-item';
const itemText = document.createTextNode(item);
li.appendChild(itemText);
ul.appendChild(li);
});
ipcRenderer.on('item:clear', function() {
ul.className = '';
ul.innerHTML = '';
});
ul.addEventListener('dblclick', removeItem);
function removeItem(e) {
event.target.remove();
if (ul.children.length == 0) {
ul.className = '';
}
}
function saveFile() {
dialog.showSaveDialog((filename) => {
if (filename === undefined) {
alert('No files selected');
return;
}
var tasks = document.getElementsByTagName('li').value
fs.writeFile(filename[0], tasks, (err) => {
if (err) {
alert("Cannot update file", err.message);
return;
}
document.getElementById('saved').textContent = 'Save Successful';
alert('items saved', tasks);
});
})
};
或我的代码在index.html文件中的gitHub帐户中 https://github.com/UgotGoosed/TaskList