【问题标题】:Webframe executeJavascript pass down objectWebframe 执行Javascript 传递对象
【发布时间】:2018-06-01 03:04:15
【问题描述】:

我正在添加 contextIsolation,因为我正在我的 web 视图中加载远程内容。

在预加载脚本中使用webFrame.executeJavascript(...),如何将不可序列化的对象传递给内部网页的上下文?

更具体地说,这是我的例子:

preload.js:

// In the preload.js context
const { ipcRenderer, webFrame } = require('electron')
const ipc = {
  send (data) {
    ipcRenderer.sendToHost(...)
  }
}
// Now I want to pass down ipc to the webpage's context
// This webpage is expecting window.myApp.ipc, so that it could use it like window.myApp.ipc.send(...)
webFrame.executeJavaScript(`window.myApp.ipc = ${ipc}`); // Doesn't work.

【问题讨论】:

    标签: electron


    【解决方案1】:

    无法通过 executejavascript 发送不可序列化的对象。如果您的预加载脚本用于 webview,您可以将一些对象附加到 window 以进行全局访问。

    【讨论】:

    • 查看electronjs.org/docs/tutorial/…,如果我在我的预加载脚本中说window.bar = 'bar';window.bar 将在我的webview 中未定义,并启用上下文隔离。
    猜你喜欢
    • 2016-09-14
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    • 2017-08-20
    • 2012-06-17
    相关资源
    最近更新 更多