电子应用程序无法正确保存

时间:2017-12-12 11:45:43

标签: javascript

如何将(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

0 个答案:

没有答案