Electron: диалоговое окно сообщения с формой

#javascript #html #electron

#javascript #HTML #electron

Вопрос:

Возможно ли получить информационное диалоговое окно с формой или вводом?
Идея в том, что если мы нажмем на btnDialog , откроется диалоговое окно, в котором мы можем определить значение для value1 или нет.

HTML :

 <button id="btnDialog">Define value1</button>
  

Средство визуализации :

 var value1 = 0;
document.getElementById("btnDialog").onclick = function(){
   ipcRenderer.send('opend');
}
ipcRenderer.on('returnd',(event,index)=>{
   if(index==0){
       //value1 = value of input
   }
});
  

Главная :

 ipcMain.on('opend',(event)=>{
    const options = {
        type:'info',
        title: 'Title',
        buttons:['OK','Cancel'],
        message: 'Define value1 <form><input></input></form>'
    };
    dialog.showMessageBox(options,(index)=>{
      event.sender.send('returnd',index);
    });
});
  

Я не вижу, как получить значение из формы, если это необходимо.
Заранее спасибо за вашу помощь.

Ответ №1:

Короткий ответ — НЕТ, вы не можете извлечь значение формы из Dialog MessageBox .

API MessageBox очень понятен, он возвращает только индекс нажатой кнопки, даже при использовании асинхронного обратного вызова, как вы сделали выше.

Правильный способ достижения вашей цели — создать новое окно браузера, которое содержало бы надлежащую форму и с которым вы могли бы взаимодействовать надлежащим образом.

Кроме того, если вы хотите удалить Chrome из окна, вы можете добавить настройки безрамочного окна.

В любом случае вы должны использовать обычный API обмена сообщениями для обмена данными между основным процессом и окном браузера.