JQuery Ui和Electron

And*_*rew 12 jquery node.js electron

我最近开始尝试使用Electron制作桌面应用程序,并让Jquery在应用程序中工作.

我安装了以下软件包 NPM install package -save

节点包依赖项:

"electron-prebuilt": "^0.36.0",
"jquery": "^2.1.4",
 "jquery-ui": "^1.10.5"
Run Code Online (Sandbox Code Playgroud)


我正在使用以下代码来运行Jquery和Jquery Ui

window.$ = window.jQuery = require('jQuery');
require("jquery-ui");
Run Code Online (Sandbox Code Playgroud)

问题: Jquery在应用程序中加载,但UI不是.

HTML EG:

<div id="bod">
  text
</div>
<script>
  $( "#bod" ).click(function(){
      var div = $("<div></div>").load("./html/testDialogue.html" );
      console.log( div );// jquery works like expected
      $(this).dialog();// UI not apart of JQuery extensions.. or loaded at all
  });
</script>
Run Code Online (Sandbox Code Playgroud)

Mor*_*gan 5

对于像我这样尝试将 jQueryUI 全局加载到您的电子应用程序中的人来说,最好的方法不是安装 jquery-ui NPM 包,而是从 CDN 下载缩小的 jQueryUI 脚本,将其存储在本地放在资源文件夹中,并将其包含在索引中,直接位于声明全局 jQuery 变量的行下方和要在其中使用它的渲染器上方,如下所示:

<script>window.$ = window.jQuery = require('jquery');</script>
<script src="../assets/js/jquery-ui.min.js"></script>
<script src="render.js"></script>
Run Code Online (Sandbox Code Playgroud)

这将允许通过渲染脚本中的全局 jQuery 变量访问所有 jQueryUI 函数。


lim*_*gni 0

如果您希望您的库作为全局变量而不是 AMD 模块,您可以使用 Bower 安装依赖项,并将脚本添加到您的 index.html 文件中,就像在常规网站中一样。对于 Jquery,您仍然需要需要它并声明全局变量,因为 Jquery 会检测正在运行的上下文。

// Expose jQuery and $ identifiers, even in
// AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
// and CommonJS for browser emulators (#13566)
if ( typeof noGlobal === strundefined ) {
    window.jQuery = window.$ = jQuery;
}
Run Code Online (Sandbox Code Playgroud)

但对于 JqueryUI,我建议将其安装为全局。JqueryUI 是否也可能检测上下文。如果是这种情况,它应该推断没有要附加的全局变量。这里他们说如何将其用作AMD模块。

https://learn.jquery.com/jquery-ui/environments/amd/