【问题标题】:How to access jquery from the render process inside the preload script on Electron如何从 Electron 上的预加载脚本中的渲染进程访问 jquery
【发布时间】:2019-07-28 20:43:41
【问题描述】:

我在我的窗口中将节点集成配置为 false,因为如文档中所述,禁用是一种很好的做法。

我想在我的预加载脚本中访问我的渲染过程的 jQuery,但我不知道该怎么做。

是否可以在预加载脚本中发生某些事件后激活模态(例如)?

链接到我在 Github 中的示例代码:https://github.com/JhonatanRSantos/Sample

【问题讨论】:

  • preload脚本中访问JQuery的目的是什么。因为它在加载 HTML 文档之前运行。我有什么要求吗?

标签: javascript node.js electron


【解决方案1】:

正如 Janith 所说,您不需要使用预加载脚本。这是基于您的 Github 存储库的工作示例:

Index.html - 在 HEADER 部分,修改如下:

<script>window.$ = window.jQuery = require('jquery');</script>
<script src="./node_modules/popper.js/dist/umd/popper.min.js"></script>
<script src="./node_modules/bootstrap/dist/js/bootstrap.min.js"></script>

请注意,您必须使用路径./node_modules/popper.js/dist/umd/popper.min.js,否则您会在控制台中收到错误消息(请参阅popper.js in bootstrap 4 gives SyntaxError Unexpected token export

Index.html - FOOTER,添加:

<script src="./index.js"></script>

将 preload.js 重命名为 index.js

index.js 可以是:

console.log('Preload.js');
setTimeout(() => {
    console.log('Open Boostrap Modal');
    $('#myModal').modal('show');
}, 5000);

最后,main.js 可以是:

const { app, BrowserWindow } = require('electron');
const path = require('path')
const url = require('url')

let createWindow = () => {
    let win = new BrowserWindow({
        width: 800,
        height: 500,
        center: true,
        resizable: false,
        show: false
    });
    win.setMenu(null);
    const mainUrl = url.format({ // https://electronjs.org/docs/api/browser-window#winloadurlurl-options
        protocol: 'file',
        slashes: true,
        pathname: path.join(__dirname, 'index.html')
      })
    win.loadURL(mainUrl);
    win.once('ready-to-show', () => {
        win.show();
        win.webContents.openDevTools();
    });
    win.on('closed', () => {
        win = null;
    });
};
app.on('ready', createWindow);

我向您的存储库提出了拉取请求以获取更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-18
    • 2017-05-01
    • 2017-11-14
    • 2021-07-30
    • 2019-05-14
    • 1970-01-01
    • 2019-10-21
    • 1970-01-01
    相关资源
    最近更新 更多