Oleh
Нужно вынести document.getElementById('#btnEd').addEventListener('click', e => { }) вот это в html файл
Anonymous
как скрипт
Oleh
Ну конечно
Anonymous
<!DOCTYPE html> <html lang="en"> <head> <title>Hello World!</title> <meta charset="UTF-8"> <link rel="stylesheet" href="index.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <h1>💖 Hello World!</h1> <p>Welcome to your Electron application.</p> <button id="btnEd">More Info</button> <script> document.getElementById('#btnEd').addEventListener('click', e => { exec('C:\\Users\\Nizomidin\\Desktop\\electron.js\\SV-launcher\\src\\start.bat'); }); </script> </body> </html>
Oleh
Ну ты же теперь в вебе
Oleh
У тебя там нет exec, по этому тебе нужно просто подать сигнал в main процес
Anonymous
ок
Oleh
Что бы событие сработало, сделай что-то. Например: const { ipcRenderer } = require('electron') document.getElementById('#btnEd').addEventListener('click', e => { ipcRenderer.send('asynchronous-message', 'ping') })
Oleh
Потом в main надо его принять и выполнить что необходимо ipcMain.on('asynchronous-message', (event, arg) => { exec('C:\\Users\\Nizomidin\\Desktop\\electron.js\\SV-launcher\\src\\start.bat'); })
Anonymous
у меня require не работал
Anonymous
почему тогда нельзя выполнить exec прям в html
Oleh
Потому что его там нет
Oleh
как и в обратном случае, document нет в main process. Потому что то веб, а то нода
Anonymous
я пытался сделать const { exec } = require('child_process');
Anonymous
в html
Anonymous
ок
Oleh
у меня require не работал
Правильно, потому что nodeIntegration отключен по умолчанию
Anonymous
а как его включить
Oleh
Могу ошибаться, я не знаю доступен ли require в локальных файлах
Anonymous
и можно ли потомм exec в htm запизать
Oleh
а как его включить
Та зачем тебе это делать
Oleh
Это не верно в корне, так никто не делает
Anonymous
ок
Oleh
Нужно просто передать событие и принять его на другой стороне
Oleh
И там уже выполнить что необходимо
Anonymous
попробую
Oleh
Включить nodeIntegration вот так https://stackoverflow.com/a/55908510/3818282
Oleh
Но прочитай пожалуйста вот этот комментарий перед тем как включать - https://stackoverflow.com/questions/44391448/electron-require-is-not-defined#comment99561429_55908510
Oleh
Потому что если будешь грузить какие-то веб странички в будущем, то это небезопасно
Oleh
Например какой-то сайт, через loadURL. В твоем случае все нормально, потому что ты грузишь локальные файлы
Oleh
Ну что?
Anonymous
да
Anonymous
на странце все еще
Anonymous
Uncaught ReferenceError: require is not defined at index.html:14
Anonymous
вот html <!DOCTYPE html> <html lang="en"> <head> <title>Hello World!</title> <meta charset="UTF-8"> <link rel="stylesheet" href="index.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <h1>💖 Hello World!</h1> <p>Welcome to your Electron application.</p> <button id="btnEd">More Info</button> <script> const { ipcRenderer } = require('electron') ipcRenderer.send('synchronous-message', 'launch') </script> </body> </html>
Anonymous
ок
Anonymous
ну тогда проще через exec
Anonymous
и dev tools отключит
Anonymous
сайт подключаю только свой
Anonymous
ну как видишь
Anonymous
Oleh
Ну я же скинул пример
Anonymous
nodeIntegration не робит
Oleh
Так ты его не включил
Oleh
webPreferences: { nodeIntegration: true }
Anonymous
так?
Anonymous
const mainWindow = new BrowserWindow({ width: 800, height: 580, minWidth: 800, minHeight: 600, icon: __dirname + '\\assets\\img\\icon.ico', webPreferences: { nodeIntegration: true, }, });
Oleh
Да
Anonymous
спасибо, все работает
Anonymous
а не знаешь как в это меню спрятать?
Oleh
читай доку
Anonymous
ок
Anonymous
доки не помогли
Oleh
А, ты имел ввиду как перенести это внутрь. Ну перетащи просто. Я подумал ты в целом как tray сделать
Oleh
Или я опять не понял что ты хочешь
Дмитрий
по-моему он просто читать не хочет: https://www.electronjs.org/docs/api/tray
Дмитрий
mainWindow.on('minimize', function (event) { event.preventDefault() win.hide() })
Anonymous
Может там можно заставить иконку всегда быть в трее и не уходить в то окно на скрине?
Anonymous
Как пофиксить белое окно, при загрузке BrowserWindow frameless? Стили подгружаются куда позднее намеченного события🤯🤡
Ed
Ахах
Ed
Смульки доставили
Electron.js releases
v11.0.0-nightly.20200713 https://github.com/electron/electron/releases/tag/v11.0.0-nightly.20200713 v11.0.0-nightly.20200713
Electron.js releases
v10.0.0-beta.11 https://github.com/electron/electron/releases/tag/v10.0.0-beta.11 v10.0.0-beta.11
Dmitry
Всем привет. Не подскажите как открыть только одно окно через proxy. К примеру с renderer процесса приходит запрос с URL сайта и URL proxy, и создается новое окно, которое загружает URL сайта через этот proxy
Oleh
https://www.electronjs.org/docs/api/session#sessetproxyconfig
Suo
Всем привет. Подключил pepflashplayer при npm start все работает. После electron-builder --win и установки, flash player не работает. Кто-то может подсказать в чем может быть проблема?
Dmitry
https://www.electronjs.org/docs/api/session#sessetproxyconfig
Так сессия же общая, и трафик с других окон тоже пойдёт через proxy
Oleh
Так сессия же общая, и трафик с других окон тоже пойдёт через proxy
Не, сессия для окна. Это не та немного сессия. https://stackoverflow.com/a/38576304/3818282
Oleh
Или я не прав?
Dmitry
Не, сессия для окна. Это не та немного сессия. https://stackoverflow.com/a/38576304/3818282
Спасибо) я видно не правильно гуглил Сейчас проверю, если что отпишусь
Dmitry
Или я не прав?
эх, к сожалению это устанавливает proxy для всех окон
Oleh
Попробуй сделать через node env
Oleh
Типо сделать два разных процеса, и для них указывать два разных --proxy-server в cli. Может как-то можно объеенить это в одно приложение (потому что два разных процеса). Не знаю, просто так сказал, может какая-то зацепка
Oleh
Вообще кто-то спрашивал выше уже похожее, в итоге решили что ему проще настроить в фф прокси для разных вкладок
Oleh
https://t.me/electron_ru/34225
Oleh
Я и тогда думал что это возможно сделать
Mikhail L.
а кто-нибудь пользуется sqlite? тут проблема с кириллицей, не получается сделать регистронезависимое сравнение. LOWER, UPPER, COLLATE NOCASE работают только на латинице