更新后父视图未在 Electron 中的 <webview> 上设置全局变量
Parent view not setting global variable on <webview> in Electron after updating
我正在尝试在访客页面(angular 控制器)中要求一个模块。
当应用程序使用旧版本的节点 (0.30.5) 时,它运行良好。但是我不得不将 electron 升级到最新版本 (0.37.6),并且我更新了 electron 应用程序中 ipc
的所有用法,因此现在是 ipcMain
和 ipcRenderer
。
以前 angular 控制器设法要求模块使用:
var ipc = window['require']('ipc');
所以我认为将其更改为:
var ipcRenderer = window['require']('electron').ipcRenderer;
但是这不起作用,它声明 window.require 不是函数。我已经多次尝试让它与其他方法一起使用,但是到目前为止没有任何效果。
问题是 require 是 undefined,但是 require 是在包含 <webview>
的 html 文件中设置的,所以它应该被定义。
<webview>
转到 URL 其中 returns 使用 angular.
的 <div>
在那个<div>
中使用的angular控制器不再工作,因为我需要的模块是首先要在文件中设置的,它是未定义的
编辑:
我现在可以看到我在 html 中设置的 属性 在应用程序调试器中可见,但是它没有出现在 webview 调试器中。
所以我只能假设父视图不会将值传递给 <webview>
。因此,如果有人知道为什么它不传递值或我需要做什么来设置它,我将不胜感激。
这是一种要求电子模块的相当古老的方式。这是新的:
var ipcRenderer = require('electron').ipcRenderer;
因此,从当前版本的 Electron (0.37.6) 开始,设置全局变量的方法是在 <webview>
标签的 preload
属性上指定预加载脚本。例如在预加载脚本中:
window['ipcRenderer'] = require('electron').ipcRenderer;
这将允许 <webview>
正在显示的访客页面使用 ipcRenderer。似乎我之前使用的方法是在父视图中设置全局变量HTML,但不再有效
我正在尝试在访客页面(angular 控制器)中要求一个模块。
当应用程序使用旧版本的节点 (0.30.5) 时,它运行良好。但是我不得不将 electron 升级到最新版本 (0.37.6),并且我更新了 electron 应用程序中 ipc
的所有用法,因此现在是 ipcMain
和 ipcRenderer
。
以前 angular 控制器设法要求模块使用:
var ipc = window['require']('ipc');
所以我认为将其更改为:
var ipcRenderer = window['require']('electron').ipcRenderer;
但是这不起作用,它声明 window.require 不是函数。我已经多次尝试让它与其他方法一起使用,但是到目前为止没有任何效果。
问题是 require 是 undefined,但是 require 是在包含 <webview>
的 html 文件中设置的,所以它应该被定义。
<webview>
转到 URL 其中 returns 使用 angular.
<div>
在那个<div>
中使用的angular控制器不再工作,因为我需要的模块是首先要在文件中设置的,它是未定义的
编辑:
我现在可以看到我在 html 中设置的 属性 在应用程序调试器中可见,但是它没有出现在 webview 调试器中。
所以我只能假设父视图不会将值传递给 <webview>
。因此,如果有人知道为什么它不传递值或我需要做什么来设置它,我将不胜感激。
这是一种要求电子模块的相当古老的方式。这是新的:
var ipcRenderer = require('electron').ipcRenderer;
因此,从当前版本的 Electron (0.37.6) 开始,设置全局变量的方法是在 <webview>
标签的 preload
属性上指定预加载脚本。例如在预加载脚本中:
window['ipcRenderer'] = require('electron').ipcRenderer;
这将允许 <webview>
正在显示的访客页面使用 ipcRenderer。似乎我之前使用的方法是在父视图中设置全局变量HTML,但不再有效