2016-11-07 69 views
1

我正在尝试构建一个应用程序,该应用程序使用Google图表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(); 
    } 
}) 

至于我知道,这应该只是'窗口',可以通过网页上的JavaScript访问。

+0

你解决了这个问题吗?我面临同样的问题。 – ThunderWiring

回答

1

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

至于要求从HTML页面的文件,我希望它的工作,就好像它在脚本标签也。但我可能会误解。