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
ок
Anonymous
а как его включить
Oleh
Могу ошибаться, я не знаю доступен ли require в локальных файлах
Anonymous
и можно ли потомм exec в htm запизать
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>
Oleh
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 не работает. Кто-то может подсказать в чем может быть проблема?
Oleh
Или я не прав?
Dmitry
Dmitry
Или я не прав?
эх, к сожалению это устанавливает proxy для всех окон
Oleh
Попробуй сделать через node env
Oleh
Типо сделать два разных процеса, и для них указывать два разных --proxy-server в cli. Может как-то можно объеенить это в одно приложение (потому что два разных процеса). Не знаю, просто так сказал, может какая-то зацепка
Oleh
Вообще кто-то спрашивал выше уже похожее, в итоге решили что ему проще настроить в фф прокси для разных вкладок
Oleh
https://t.me/electron_ru/34225
Oleh
Я и тогда думал что это возможно сделать
Dmitry
Mikhail L.
а кто-нибудь пользуется sqlite? тут проблема с кириллицей, не получается сделать регистронезависимое сравнение.
LOWER, UPPER, COLLATE NOCASE работают только на латинице
Ed