JQuery 无法与电子框架一起使用

问题描述 投票:0回答:3

我正在尝试使用电子小提琴将 jquery 与电子框架一起使用。 但是 jquery 似乎无法正常工作并且动画未执行。 示例如下:https://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_animation1

main.js

// Modules to control application life and create native browser window

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

function createWindow () {
  // Create the browser window.
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true
    }
  })

  // and load the index.html of the app.
  mainWindow.loadFile('index.html')

  // Open the DevTools.
  // mainWindow.webContents.openDevTools()
}

// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on('ready', createWindow)

// Quit when all windows are closed.
app.on('window-all-closed', function () {
  // On OS X it is common for applications and their menu bar
  // to stay active until the user quits explicitly with Cmd + Q
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('activate', function () {
  // On OS X it's common to re-create a window in the app when the
  // dock icon is clicked and there are no other windows open.
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow()
  }
})

index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Hello World!</title>
    <link rel="stylesheet" type="text/css" href="./styles.css">
<script>window.$ = window.jQuery = require('https://code.jquery.com/jquery-3.3.1.slim.min.js');</script>

<script> 
$(document).ready(function(){
  $("button").click(function(){
    $("div").animate({left: '250px'});
  });
});
</script> 

  </head>
  <body>
    
<button>Start Animation</button>

<div style="background:#98bf21;height:100px;width:100px;position:absolute;"></div>

<script>
  // You can also require other files to run in this process
  require('./renderer.js')
</script>

  </body>
</html>

单击按钮后没有任何反应。

html jquery node.js npm electron
3个回答
3
投票

通常您会通过

npm install jquery
将电子安装到您的
node_modules
文件夹中,并在您的
renderer.js
中需要它。所以:

window.$ = window.jQuery = require('jquery');

属于 renderer.js 内部。这样您就可以在本地使用它,并且 yiu 不再依赖于外部 CDN。


0
投票

2022 年。这就是我让它发挥作用的方式。

安装JQuery

npm install jquery --save

使用

script
标签将 jquery 添加到您的
index.html
文件中。
src
应该是
node_modules
文件夹中 jquery 的路径

    <script type="text/javascript" src="../node_modules/jquery/dist/jquery.min.js"></script>

现在 JQuery 将在渲染器进程中以

$
的形式提供(
renderer.js
文件)


0
投票

由于您启用了nodeIntegration,因此 jQuery 库 (

"object" == typeof module && "object" == typeof module.exports
) 内的运行时环境被识别为 Node.js。一个简单的解决方案是删除库开头的环境检测代码。

!function(a, b) {
"object" == typeof module && "object" == typeof module.exports 
? module.exports = a.document 
    ? b(a, !0) 
    : function(a) {
        if (!a.document) 
            throw new Error("jQuery requires a window with a document");
        return b(a);
    }
: b(a);
}(window, function(a, b) {
    // Library implementation here
});
© www.soinside.com 2019 - 2024. All rights reserved.