ELECTRON-加载包含脚本标签的本地HTML文件

时间:2019-02-23 20:16:57

标签: javascript html node.js electron fs

我是Node和Electron的新手,所以我可能会离开。

基本上,我想做的是创建一个具有主要导航功能的SPA,用户可以单击链接来加载包含脚本标签的本地HTML文件。目前,我有一个使用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 :(得分:0)

这可能有效,请尝试并让我知道。

<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>