电子窗口'没有定义

时间:2016-11-07 23:06:33

标签: electron

我正在尝试使用Google Charts api构建一个绘制折线图的应用。 我设置的一件事就是窗口上的事件监听器,用于调整大小'事件。这会触发折线图重绘,尺寸设置为' window.innerWidth'和' window.innerHeight'以适应新的窗口大小。

如果我使用npm start运行应用程序,这一切都正常。问题是当我使用电子包装器构建应用程序时。运行它构建的exe会抛出这个:enter image description here

这是我的HTML:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>AP Test Viewer</title>
    <link rel="stylesheet" href="css/styles.css">

  </head>
  <body ng-app="ApApp" ng-controller="MainController">

    <a ui-sref="single">Single</a>
    <a ui-sref="multi">Multi</a>

    <ui-view></ui-view>


  </body>

  <script>
    // You can also require other files to run in this process
    require('./renderer.js');
    require('./js/loader.js'); //google charts loader.js
    require('./js/app.js');
  </script>
</html>

和我的应用程序的相关部分,我在这里使用窗口:

app.fun.drawGraph = function(){
    if(app.data.graphConfig){
        app.data.graphConfig.options.width = window.innerWidth * 0.97;
        app.data.graphConfig.options.height = window.innerHeight * 0.90;

        var chart = new google.visualization.LineChart(document.getElementById('chart'));
        chart.draw(app.data.graphConfig.data, app.data.graphConfig.options);
        // chart.draw($scope.graphData, google.charts.Line.convertOptions(options));    
    }
}

window.addEventListener('resize', function(e){
    if(app.data.graphConfig){
        app.fun.drawGraph();
    }
})

据我所知,这应该只是&#39; window&#39;可以通过网页上的javascript访问。

2 个答案:

答案 0 :(得分:1)

看起来您引用的相关Javascript正在主进程而不是渲染器进程中运行。如果您将引用window的代码移动到html中的脚本代码中,则您不应该看到相同的问题。

就要求html页面中的文件而言,我希望它能够像脚本标签一样工作。我可能会弄错。

答案 1 :(得分:0)

我遇到了这个问题,发现我的package.json没有定义main,因此Electron考虑使用index.js这个脚本来运行Electron主进程。

main设置为专用脚本文件(在我的情况下为electron.js)之后,一切都很好。