分配事件处理程序时未定义文档

时间:2018-07-17 19:12:43

标签: javascript electron

所以我在这里要做的是为我的每个标题栏按钮(最小化,最大化,关闭)绑定onclick事件。当我运行npm start时,我会一直返回“文档未定义”,我不确定为什么。我对电子还很陌生,所以我对Node也没有太多经验,所以这一切似乎很奇怪。我见过其他一些人也提出了类似的问题,但是他们的修复似乎都对我无效。

我在某处读到app.on('ready)并不意味着在处理电子时必须加载我的DOM。我希望,如果确实如此,那么有人可以解释如何处理这种情况。据我了解,我的当前代码仅应在加载DOM之后将事件处理程序绑定到这些按钮,而仍然无法识别“文档”。

我也没有排除我的问题与我刚才描述的并不完全无关。对我来说,这一切都是很新的,而挫败感正在加剧。在chrome中,这样的操作相对来说比较温和并且易于实现,但是在这里似乎还有更多的地方。

这是我的Javascript:

const electron = require('electron')
const remote = require('electron').remote
const ipc = require('electron').ipcRenderer
const url = require('url')
const path = require('path')
const app = electron.app
const BrowserWindow = electron.BrowserWindow

var MainWindow;
app.on('ready', function() {
  MainWindow = new BrowserWindow({
    width: 1024,
    height: 768,
    backgroundColor: '123355',
    frame: false,
    resizable: true,
    movable: true,
    show: false
  })

  MainWindow.on('ready-to-show', () => {
    MainWindow.show()
    console.log('Ready to go!')
  })

  MainWindow.loadURL(url.format({
    pathname: path.join(__dirname, 'index.html'),
    protocol: 'file:',
    slashes: true

  }))

  document.onreadystatechange = function() {
    if (document.readyState == "complete") {
      init();
    }
  };
});

function init() {
  document.getElementById("minbtn").addEventListener("click", function(e) {
    var window = BrowserWindow.getFocusedWindow();
    window.minimize();
  });

  document.getElementById("maxbtn").addEventListener("click", function(e) {
    var window = BrowserWindow.getFocusedWindow();
    window.maximize();
  });

  document.getElementById("closebtn").addEventListener("click", function(e) {
    var window = BrowserWindow.getFocusedWindow();
    window.close();
  });
};

0 个答案:

没有答案