gpt4 book ai didi

electron - 如何将 Select2 与 Electron 一起使用(未捕获的 TypeError : $(. ..)。select2 不是函数)

转载 作者:行者123 更新时间:2023-12-03 12:26:00 25 4
gpt4 key购买 nike

我在这里发现了一个类似的问题:
Uncaught TypeError: $(...).select2 is not a function
但这不适用于 Electron(这里有另一个关于 Electron 的问题没有解决方案:https://github.com/select2/docs/issues/17),解决方案是检查 jQuery 是否加载了两次。

如何检查我是否加载了 jQuery 两次?
实际上,当我们在窗口中使用“nodeIntegration=true”时,我认为这是 Electron 中库的一个普遍问题,因为我们需要添加一些技巧:

这是我的代码:

<script>
window.$ = window.jQuery = require('jquery');
window.Popper = require('popper.js').default;
window.Bootstrap = require('bootstrap');
dt = require( 'datatables.net-bs4' )(window, window.$);
require( 'datatables.net-fixedheader-bs4' )(window, $);
//require( 'datatables.net-select-bs4' )(window, $);
</script>

<script src="../../js/select2.min.js"></script>

你能看到所有那些丑陋的黑客吗?无论如何,我觉得我没有加载 jQuery 两次,即使我是 Select2 也是在所有其他库之后添加的。
也许是因为我添加为脚本而不是使用已安装的模块?是不是可以混合起来?

更新:
也许问题出在 select2.js 的这段代码中?
/*! Select2 4.0.7 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(a) {
"function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof module && module.exports ? module.exports = function(b, c) {
return void 0 === c && (c = "undefined" != typeof window ? require("jquery") : require("jquery")(b)),
a(c),
c
}
: a(jQuery)
}(function(a) {

我不完全理解在做什么,但似乎正在检查 module.exports,这在带有 nodeIntegration=true 的 Electron 窗口中是正确的

最佳答案

好的,这就是问题所在,如果我们在 Electron 窗口中使用 nodeIntegration=true ,那么我们需要使用 require (不是脚本标签)以这种方式加载 Select2 库:

require( 'YOUR PATH TO/select2.min.js' )(jQuery);

关于electron - 如何将 Select2 与 Electron 一起使用(未捕获的 TypeError : $(. ..)。select2 不是函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56871506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com