ELECTRON - загрузить локальный HTML-файл, содержащий тег скрипта - PullRequest
0 голосов
/ 23 февраля 2019

Я относительно новичок в Node и Electron, так что я могу быть далеко от этого.

По сути, я пытаюсь создать SPA, имеющий основную навигацию, и пользователь может нажать нассылки, которые будут загружать локальные HTML-файлы, содержащие тег script.В настоящее время у меня есть главная страница, которая использует fs для захвата html-файлов и загрузки их в div успешно, но ни один из JS в этом извлеченном файле не работает.Я делаю это так, потому что мне нужно взаимодействовать с пользовательским интерфейсом и добавлять динамические элементы

, это то, что у меня есть для кода:

mainWindow.html

<script>
    document.addEventListener('DOMContentLoaded', () => {
        fs.readFile(path.join(__dirname, 'fragments/main/welcome.html'), 'utf8', (err, data) => {
            document.getElementById('content').innerHTML = data;
        });
    });
</script>

welcome.html

<section class="main-content-wide">
<h1>Welcome to my app</h1>
<p id="datetimeGreeting"></p>
<p id="funFact"></p>
<script>
    console.log('Hello world');
</script>

Заранее спасибо.

отредактируйте: если у кого-то естьЯ бы хотел это услышать.

1 Ответ

0 голосов
/ 25 февраля 2019

Это может сработать, попробуйте и дайте мне знать.

<script>
    document.addEventListener('DOMContentLoaded', () => {
        fs.readFile(path.join(__dirname, 'fragments/main/welcome.html'), 'utf8', (err, data) => {
            document.getElementById('content').innerHTML = data;
            var scripts = document.getElementById('content').getElementsByTagName("script");
            for (var i = 0; i < scripts.length; i++) {
              eval(scripts[i].innerText);
            }
        });
    });
</script>
...