Манипуляции с DOM в электронном браузере из второго просмотра браузера?

#javascript #dom #google-chrome-extension #electron #preload

#javascript #dom #google-chrome-расширение #electron #предварительная загрузка

Вопрос:

Я устанавливаю приложение Electron, которое использует одно основное окно браузера, а затем добавляю к нему два просмотра браузера.

Идея заключается в том, что один BrowserView действует как боковая панель, а другой BrowserView загружает внешний URL-адрес.

Я намереваюсь управлять внешним веб-сайтом из DOM в BrowserView, аналогично расширениям Chrome при работе с фоновыми и контекстными сценариями.

У меня есть код, загружающий главное окно приложения и два представления, с одним локальным индексом, загруженным с одной стороны, и веб-сайтом с другой. Там все хорошо (мне просто нужно изучить отзывчивость размеров просмотров, но это в другой раз …)

Теперь я попытался использовать webPreferences с предварительной загрузкой, но я не могу получить свое оповещение или консоль.войдите в систему для запуска…

 webPreferences: {
  preload: './preload.js',
}
 

Я также пытался использовать path: preload: path.join(__dirname, 'preload.js') но тоже не смог заставить его работать…

Есть идеи, как я могу этого добиться?

Нужно ли мне отказаться от метода предварительной загрузки и заглянуть в IPC? Я думал о том, чтобы из моего html в одном из представлений использовать IPC для связи с основным процессом, но проблема в том, что они взаимодействуют с другим представлением, поскольку это внешний веб-сайт, я не знаю, как реагировать на сообщения из main, если я не могу предварительно загрузить там фоновый или контекстный скрипт… Имеет смысл?

Любая помощь с be great, это мое первое приложение Electron…

Комментарии:

1. что вы имеете в виду, что вы не можете получить свое оповещение / консоль. войти в триггер? Вы пытаетесь заставить свою боковую панель запускать этот код в контексте главной страницы? Как вы это тестируете?

2. Я смог внедрить файл js preload: path.join(__dirname, '/preload.js'), , но это работает только в моем основном окне браузера. Я хочу предварительно загрузить его в прикрепленном окне просмотра браузера. Похоже, это ошибка в electron или что-то в этом роде, потому что точно такая же инструкция в BrowserView не выполняет предварительную загрузку скрипта…

3. предварительная загрузка должна работать в BrowserView. нам нужно будет просмотреть еще немного кода

4. Вот простой пример: github.com/laranjaquadrada/electron-quick-start Вы можете просмотреть код здесь: gist.github.com/ckerr/d467fb8d1c884b306b0c5fc0f4d36fd5