微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Electron页面无法使用JQuery,抛出Uncaught ReferenceError: $ is not defined

背景:web项目迁移到Electron,原web项目中用了JQuery,迁移后运行,抛出Uncaught ReferenceError: $ is not defined Electron版本是15.3.0,参考了https://stackoverflow.com/questions/32621988/electron-jquery-is-not-defined

发现是这个原因:

    webPreferences: {
      // preload: path.join(__dirname, 'preload.js'),
      nodeIntegration: true,
      contextIsolation: false,
    }

把nodeIntegration和contextIsolation恢复认值即可解决

原因是渲染进程集成了Node.js运行环境,必须以node.js的方式去运行$函数,也就是需要let $ = require等方式去使用外部函数

新手的思考:

这样的话,未来可以在preload.js中放node.js环境相关的东西,render.js中放纯浏览器JS环境的东西。

为了便于项目迁移,始终将渲染进程和node.js环境保持隔离,render.js中完全不放node.js相关的东西,不必把node.js的API刻意暴露给render.js使用(可以基于项目需要在preload.js中实现),这样或许就可以实现WEB应用程序和桌面应用程序的方便转换。

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐