2016-06-10 3 views
3

Я пытаюсь добавить функциональность JQuery в настольное приложение написано в электроном Использование электронно-быстрого старта репо я добавляю загруженный файл Jquery в main.html файл, например так:Интеграция Jquery в электронном приложении

<script> require("./jquery.min.js"); </script> 

или так:

<script>window.$ = window.jQuery = require('./jquery.min.js');</script> 

Затем в index.js файл я добавить код в функции createWindow, так что, кажется, правильное место, но если честно, в любом месте, я стараюсь получает мне ту же ошибку мор e или меньше.

mainWindow.$ является undefined и то же самое для BrowserWindow и app

mainWindow определяется внутри функции createWindow следующим образом: mainWindow = new BrowserWindow({width: 800, height: 600})

и BrowserWindow объявлен в верхней части файла, как так: const BrowserWindow = electron.BrowserWindow

Любая идея, где я ошибаюсь, какие декларации я должен изменить/добавить?

Заранее спасибо

+0

Возможный ответ: https://stackoverflow.com/a/37480521/1061836 – Trees4theForest

ответ

8

При вызове require внутри index.js или основной процесс, он ищет узлового модуля. Поэтому вам нужно установить jQuery через npm и сохранить его как зависимость в вашем файле package.json приложения.

npm install jquery --save 

Тогда ваш index.js теоретически должен видеть это просто отлично с помощью

let $ = require('jquery'); 
mainWindow.$ = $; 

Обратитесь к Node.JS section for installing jQuery. Это то, что использует Электрон.

-

OLD ОТВЕТ

Внутри вашего main.html, просто включите JavaScript, как и любой традиционный JS файл.

<script src="./jquery.min.js"></script> 
+0

, который, похоже, не решает проблему. Кроме того, я думал, что заявление о необходимости уже позаботилось об этом. И проблема заключается в видимости внутри файла index.js. Если я добавлю инструкцию console.log ($) после запроса require, я получу то, что ожидаю. Просто видимость не переводится в файл index.js –

+0

@omu_negru Извините, я неправильно понял, что вы просили. Я обновил свой ответ с шагами, которые должны решить вашу проблему.Дайте мне знать, если это не работает. – Shakespeare

+0

Спасибо, но это заставляет приложение выбрасывать другое исключение 'require (...). Jsdom (...). CreateWindow не является функцией' –

13

При использовании электрона некоторые дополнительные символы также вставлены в DOM, вызывающие проблемы. Таким образом, вы можете использовать jquery следующим образом:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js" onload="window.$ = window.jQuery = module.exports;"></script> 

Обратите внимание на код внутри «onload».

+0

' jQuery требует окна с документом ', к сожалению, ни один из ответов, которые я нашел на любом веб-сайте, не работал. – adamj