无法在电子版

时间:2018-03-04 14:11:57

标签: javascript electron

我一直在关注Electron的教程,我在新的BrowserWindow中使用html文档作为弹出窗口。问题是,当我在html标签上使用onclick处理程序时,它似乎没有触发。如果我打开开发人员工具,我可以在控制台中输入我的函数,它的行为符合预期!

不确定我是否遗漏了一些非常明显的东西,但我很感激能帮助我解决问题的人。

以下是来自BrowserWindow的html的body标签:

<body id="page-info">
  <main class="info-content">
    <h3 class="page-headline">Wisdom Pet</h3>
    <p>Welcome to the Wisdom Pet App.<br>
    <strong>Version 1.0.0</strong><br>
    <small>Built with love by <a href="#" onclick="shell.openExternal('http://raybo.org')">Ray Villalobos</a></small>
    </p>
    <p><a href="#" id="closeAbout" onclick="send()">close window</a></p>
  </main>

<script type="text/javascript">enter code here
    var electron = require('electron');
    var shell = electron.shell;
    var ipc = electron.ipcRenderer;

    /* Also tried using event listeners without html onclick

    var closeAbout= document.getElementById("closeAbout");
    closeAbout.addEventListener("click", function(){
        send();
    });
    */

    function send(){

        console.log("sending...");
        ipc.sendSync('closeInfoWindow')
    }
</script>

这是main.js文件:

var Electron = require("electron");
var Menu = Electron.Menu;
var BrowserWindow = Electron.BrowserWindow;
var app = Electron.app;
var ipc = Electron.ipcMain;

var myAppMenu, menuTemplate;

app.on("ready", function(){

  var appWindow = new BrowserWindow({
    show: false
  });

  appWindow.loadURL("file://" + __dirname + "/index.html");

  var infoWindow = new BrowserWindow({
    show: false,
    width: 400,
    height: 300,
    frame: false,
    transparent: true,

  });

  infoWindow.loadURL('file://' + __dirname + '/info.html');

  appWindow.once("ready-to-show", function(){
    appWindow.show();
  });

  ipc.on("openInfoWindow", function(event, arg){
    event.returnValue = "";
    infoWindow.show();
  })

  ipc.on('closeInfoWindow', function(event, arg){
    event.returnValue = '';
    infoWindow.hide();
  }); //closeInfoWindow

});

ipc.on(“openInfoWindow”)可以在主窗口中正常工作,但是一旦infoWindow打开,我就无法关闭它,除非我直接从开发人员工具发送代码。

0 个答案:

没有答案