Доступ к элементам HTML через скрипт - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь создать электронную программу, которая могла бы регистрировать текст TextArea в файле HTML, но по какой-то причине я получаю эту ошибку:

(узел: 8664) UnhandledPromiseRejectionWarning: TypeError:mainWindowHTML.getTextAreaText не является функцией в Object.module.exports.Save (C: \ Users \ пользователь \ 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 \ пользователь \ Documents \ JavaScript \ node.js \ Electron \ INTERFACE_EDITOR \ node_modules \ electronic\ dist \ resources \ Electron.asar \ browser \ api \ menu-item.js: 55: 9) на Function.executeCommand (C: \ Users \ пользователь \ Documents \ JavaScript \ node.js \ Electron \ INTERFACE_EDITOR \ node_modules \ Electron\ dist \ resources \ Electron.asar \ browser \ api \ menu.js: 30: 13) (узел: 8664) UnhandledPromiseRejectionWarning: необработанное отклонение обещания.Эта ошибка возникла либо из-за того, что внутри асинхронной функции возникла ошибка без блока catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch ().(идентификатор отклонения: 1) (узел: 8664) [DEP0018] Предупреждение об устаревании: отклонения необработанного обещания устарели.В будущем отклонения обещаний, которые не обрабатываются, завершат процесс 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 голосов
/ 18 декабря 2018

Хорошо, я решил проблему, используя ipcRenderer вместо экспорта функций, которые на самом деле не работали.Я действительно ценю людей, которые пытались помочь!

0 голосов
/ 17 декабря 2018

Разве вы не можете просто сделать:

<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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...