我可以在Electron中使用javascript创建HTML页面吗?

时间:2016-12-24 19:47:34

标签: javascript electron

我知道有一种加载html页面的方法

win.loadURL("index.html");

但是,我可以加载一个html页面,当它不是来自文件时,只是由javascript动态生成吗?

例如:

str = generateHtmlPage();
win.loadstr(str);  // just load from a string

2 个答案:

答案 0 :(得分:0)

Javascript使用DOM(文档对象模型)与HTML文件进行交互。并作为解析页面的一部分执行。从逻辑上讲,您可以使用附加到html页面构建整个页面。

document.write("Build my page here.");

但是这个解决方案看起来很麻烦,不是一个明智的解决方案。也许,编辑您的问题以确定您的目标,我或许可以帮助您找到合适的解决方案。

答案 1 :(得分:0)

[timo]用[dannvix]的要点回答了我的问题:

https://gist.github.com/dannvix/dc0efdbb75bf79a79d1c#file-electron-main-js-L21-L27

这是代码:

// main.js for Electron
var app = require("app"),
    BrowserWindow = require("browser-window");

app.on("window-all-closed", function() {
  app.quit();
})

var mainWindow = null;
app.on("ready", function() {
  mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    center: true,
    resizable: true,
    frame: true,
    transparent: false,
  });
  mainWindow.setMenu(null);

  // create BrowserWindow with dynamic HTML content
  var html = [
    "<body>",
      "<h1>It works</h1>",
    "</body>",
  ].join("");
  mainWindow.loadUrl("data:text/html;charset=utf-8," + encodeURI(html));

  mainWindow.openDevTools();
  mainWindow.on("closed", function() {
    mainWindow = null;
  });
});