电子 'window' 未定义
Electron 'window' is not defined
我正在尝试构建一个使用 Google 图表 api 绘制折线图的应用程序。
我已经设置的一件事是在 window 上为 'resize' 事件监听事件。这会触发折线图重新绘制,尺寸设置为 'window.innerWidth' 和 'window.innerHeight' 以适应新的 window 大小。
如果我 运行 使用 npm start 的应用程序,这一切都很好。问题是当我使用 electron-packager 构建应用程序时。 运行 它构建的 exe 抛出这个:
这是我的 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>
我的应用程序的相关部分,我在这里使用 window:
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();
}
})
据我所知,这应该只是'window',可以通过javascript在网页上访问。
您引用的相关 Javascript 似乎是 运行 在主进程中而不是渲染器进程中。如果您将引用 window
的代码移动到 html 中的脚本标记中,您应该不会看到相同的问题。
就需要 html 页面中的文件而言,我希望它也能像在脚本标记中一样工作。不过我可能弄错了。
我遇到了这个问题,发现我的 package.json
没有定义 main
,所以 Electron 认为 index.js
脚本到 运行 Electron 主进程。
将main
设置为专用脚本文件(我的情况是electron.js
)后,一切正常。
我正在尝试构建一个使用 Google 图表 api 绘制折线图的应用程序。 我已经设置的一件事是在 window 上为 'resize' 事件监听事件。这会触发折线图重新绘制,尺寸设置为 'window.innerWidth' 和 'window.innerHeight' 以适应新的 window 大小。
如果我 运行 使用 npm start 的应用程序,这一切都很好。问题是当我使用 electron-packager 构建应用程序时。 运行 它构建的 exe 抛出这个:
这是我的 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>
我的应用程序的相关部分,我在这里使用 window:
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();
}
})
据我所知,这应该只是'window',可以通过javascript在网页上访问。
您引用的相关 Javascript 似乎是 运行 在主进程中而不是渲染器进程中。如果您将引用 window
的代码移动到 html 中的脚本标记中,您应该不会看到相同的问题。
就需要 html 页面中的文件而言,我希望它也能像在脚本标记中一样工作。不过我可能弄错了。
我遇到了这个问题,发现我的 package.json
没有定义 main
,所以 Electron 认为 index.js
脚本到 运行 Electron 主进程。
将main
设置为专用脚本文件(我的情况是electron.js
)后,一切正常。