module.export inline html - PullRequest
       102

module.export inline html

1 голос
/ 14 июля 2020

, когда я пытаюсь экспортировать переменную в свой HTML файл и импортировать в свой main. js файл, он выдает ошибку: SyntaxError: Unexpected token '<' , которая относится к <!DOCTYPE html> в начале моего индекса. html и я не знаю, почему require не захватывает скрипт с тегом модуля? Я просто хочу, чтобы переменная отображалась в основном файле. js

Я пробовал с global.foo, но это тоже не сработало

index. html:

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>Minecraft Launcher</title>
  <link href="https://fonts.googleapis.com/css2?family=Open Sans" rel="stylesheet">

  <style>
    body {
      background-color: rgb(0, 0, 0);
      background-position: center;
      color: white;
      font-family: 'Open Sans', sans-serif;
    }
  </style>
</head>

<body>
  <input type="button" value="Try me" id="startbutton">
  <input type="text" name="input" id="input">
  <script>
    require('./renderer.js')

  </script>
  <script type="module">
    module.exports.foo = 5;
  </script>

</body>

</html>

основной. js:

const { app, BrowserWindow } = require('electron')

// Variables
let startbutton;

app.on('ready', () => {
  createWindow();
})

function startvariables() {
  console.log("jup")
  startbutton = window.document.getElementById("input")
  console.log(startbutton.value)
}

function createWindow() {
  var mainWindow = new BrowserWindow({
    width: 950,
    height: 600,
    webPreferences: {
      nodeIntegration: true
    }
  })
  mainWindow.loadFile('./index.html')
  mainWindow.webContents.openDevTools()
}


setInterval(() => {
  var foo1 = require('./index.html')
  console.log(foo1)
}, 200)

1 Ответ

1 голос
/ 15 июля 2020

Это определенно не сработает: реализации require node и electronics ожидают файл JS, будь то основной процесс или процесс рендеринга. Невозможно извлечь содержимое тега <script> в файл HTML.

Похоже, вы пытаетесь передать некоторые данные из модуля рендеринга в основной процесс: электрон предлагает IP C система именно для этого.

...