通过脚本访问HTML元素

时间:2018-12-17 17:52:21

标签: javascript html node.js electron

我正在尝试制作一个电子程序,该程序可以将TextArea的文本记录在HTML文件中,但是由于某种原因,我遇到此错误:

  

(节点:8664)UnhandledPromiseRejectionWarning:TypeError:mainWindowHTML.getTextAreaText不是函数       在Object.module.exports.Save(C:\ Users \ user \ Documents \ JavaScript \ node.js \ Electron \ INTERFACE_EDITOR \ menuScripts.js:12:33)       单击时(C:\ Users \ user \ Documents \ JavaScript \ node.js \ Electron \ INTERFACE_EDITOR \ index.js:36:37)       在MenuItem.click上(C:\ Users \ user \ Documents \ JavaScript \ node.js \ Electron \ INTERFACE_EDITOR \ node_modules \ electron \ dist \ resources \ electron.asar \ browser \ api \ menu-item.js:55:9)       在Function.executeCommand(C:\ Users \ user \ Documents \ JavaScript \ node.js \ Electron \ INTERFACE_EDITOR \ node_modules \ electron \ dist \ resources \ electron.asar \ browser \ api \ menu.js:30:13)   (节点:8664)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。引发此错误的原因可能是抛出了一个没有catch块的异步函数,或者是拒绝了一个.catch()无法处理的承诺。 (拒绝ID:1)   (节点:8664)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。将来,未处理的承诺拒绝将以非零退出代码终止Node.js进程。

在我的主类中,我基本上将HTML文件加载到可以正常工作的浏览器窗口中,并且当单击菜单项时,它将调用menuScripts.js脚本的这一部分:

const url = require('url');
const path = require('path');

module.exports.Save = async(dialog) => {

const mainWindowHTML = url.format({
    pathname: path.join(__dirname , "./htmls/MainWindow.html"),
    protocol: "file",
    slashes: true
    });

const text = mainWindowHTML.getTextAreaText();
    console.log(text);
}

module.exports.New = async(dialog) => {

}

module.exports.Exit = async(window) => {
    window.close();
}

这是我的MainWindow.html文件:

<html lang="en">
<head>
    <title>document</title>
</head>
<body>
    <textarea id="code" cols="30" rows="10"></textarea>
</body>
<script>
    module.exports.getTextAreaText = async() => {
        return (document.getElementById("code").innerText)
    }
</script>
</html>

2 个答案:

答案 0 :(得分:0)

你不能只是做

<html lang="en">
<head>
    <title>document</title>
</head>
<body>
    <textarea id="code" cols="30" rows="10"></textarea>
    <script src="menuScripts.js"></script>
</body>
</html>

和menuScripts.js:

const url = require('url');
const path = require('path');

module.exports.Save = async(dialog) => {

const mainWindowHTML = url.format({
    pathname: path.join(__dirname , "./htmls/MainWindow.html"),
    protocol: "file",
    slashes: true
    });

const text = document.getElementById("code").innerText;
    console.log(text);
}

module.exports.New = async(dialog) => {

}

module.exports.Exit = async(window) => {
    window.close();
}

答案 1 :(得分:0)

好吧,好吧,我使用ipcRenderer解决了问题,而不是导出实际上没有用的功能。我真的很感谢尝试帮助的人!