【问题标题】:Why can't I reference jQuery using a script tag in Electron?为什么我不能在 Electron 中使用脚本标签引用 jQuery?
【发布时间】:2016-03-15 03:44:28
【问题描述】:

在 nodejs 电子应用程序中使用 jquery。我必须通过 npm 安装 jQuery 并使用 require('jquery') 来引用 jQuery

效果很好。

我需要知道为什么我不能像在普通浏览器中使用脚本标签那样附加 jquery

<script src="jquery-1.12.1.min.js"></script> //getting error $ not defined

下面的代码仅使用脚本标签来附加 jquery,它得到一个错误,$ 没有定义

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery-1.12.1.min.js"></script>
    <!--<script>-->
        <!--var $ = require('jquery');-->
    <!--</script>-->
    <script>
        $(document).ready(function(){});
    </script>
    <link href="style.css" rel="stylesheet">
</head>

<body>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Harum vel, ipsum nisi laboriosam nesciunt. Asperiores dolorum tempore quia, voluptatum laborum dolore officiis velit similique amet totam in? At, neque, assumenda.</p>
</body>

</html>

【问题讨论】:

    标签: node.js electron


    【解决方案1】:

    如前所述,jQuery 试图变得聪明并找出它是在浏览器还是 node.js 环境中。在浏览器中,它会定义 $jQuery,但在 node.js 环境中,它会尝试通过将其分配给 module.exports 来导出其主要对象。

    由于渲染器进程有可用的 node.js(和 module),jQuery 错误地假定它包含在 require 中。

    因此,作为一种解决方法,您可以使用以下方法:

    <script src="path/to/jquery/jquery.js" type="text/javascript"></script>
    <script type="text/javascript"> jQuery = $ = module.exports </script>
    

    【讨论】:

      【解决方案2】:

      如果您在电子应用程序中尝试这样做,那么很可能是 Jquery 文件不在指定的路径中。它很可能位于 /node_modules/Jquery/... 类似的东西。尝试绝对路径。或者,如果主机连接到 Internet,您应该能够使用 Jquery CDN。

      这似乎是 Electron 中的一个已知问题,

      Here #254

      【讨论】:

      • 附加成功。在 chrome 开发工具中调试。也试过CDN。还是不行
      • 是否定义了“window.jquery”?
      • window.jQuery : "jQuery" 未定义
      • 应该全部小写吧?
      • "jQuery 看到它在 CommonJS 环境中运行,并希望被这样使用"。谢谢!
      猜你喜欢
      • 2011-03-18
      • 1970-01-01
      • 2021-07-06
      • 1970-01-01
      • 1970-01-01
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多