Как прикрепить слушателей к удаленной странице в электронном приложении - PullRequest
0 голосов
/ 23 января 2020

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

Поэтому мне нравится добавлять эти ярлыки вручную. Я не могу найти документ или окно удаленной страницы, к которому прикрепляются прослушиватели событий.

Как подключить прослушиватели событий keydown (и других) к удаленной странице?

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

let mainWindow;

function createWindow () {
  // Create the browser window.
  mainWindow = new BrowserWindow({
    width: 1024,
    height: 786,
  });

  mainWindow.setMenu(null);
  mainWindow.setTitle('My app – Connecting…');
  mainWindow.loadURL('https://some.url.somwhere');

  mainWindow.webContents.on('did-finish-load', () => {

    // How to get the window/document here? Both are undefined
    window.addEventListener('keydown', (e) => {
      if (e.key === 'ArrowLeft' && e.altKey) {
        webview.history.back();
      } else if (e.key === 'ArrowRight' && e.altKey) {
        webview.history.forward();
      }
    });

  });

  // Emitted when the window is closed.
  mainWindow.on('closed', () => {
    mainWindow = null
  })
}

app.on('ready', createWindow);

1 Ответ

0 голосов
/ 23 января 2020
mainWindow.webContents.on('did-finish-load', () => {
    mainWindow.webContents.openDevTools()
    mainWindow.webContents.executeJavaScript(`window.addEventListener('keydown', (e) => {
      if (e.key === 'ArrowLeft' && e.altKey) {
        console.log('Alt + <-')
        window.history.back();
      } else if (e.key === 'ArrowRight' && e.altKey) {
        console.log('Alt + ->')
        window.history.forward();
      }
    });`)
  })
...