Допустим, есть нормальная веб-страница https, которая работает в chrome. На этой странице есть игра с игрой. И я технически не могу изменить какие-либо источники на этой странице. То, что я хочу:
Покройте всю страницу белым div. (webContents.execute JavaScript (...))
Переместите игру наверх, чтобы ничего кроме этого не было видно. (webContents.insert CSS (...))
Показать мое приложение vue. js между белым div и холстом.
Так что у меня проблема с 3. В лучшем случае я хочу поместить свое приложение в. Почему ифраме? Потому что во время разработки и в случае ошибок мне не пришлось бы перезагружать всю страницу с игрой, а только мой iframe с моим приложением. Пока проблема в том, что веб-страница не позволяет загружать iframe из файла file: //, и если я запускаю локальный сервер, он не позволяет добавлять http: // iframe на странице https.
Так что это варианты что я до сих пор сталкивался:
- Использование нескольких BrowserViews . Но я не вижу способа контролировать, какой из них находится на вершине в API. И я также не уверен, что они позволят мне нажимать друг на друга, и что покрытый не замерзнет.
- Использование CDP . Заставьте страницу думать, что некоторый https://game.com / TotallyValidPath является реальным путем, в то время как я буду перехватывать и заменять полезную нагрузку моим контентом. Это, однако, означает, что исходная страница сможет связываться с localalstorage, indexedDB и всем, что я хотел бы использовать.
- Создайте расширение и загрузите его на страницу. Хотя в данный момент (электрон 8) он не позволяет добавлять распакованные расширения.
Так есть ли какой-нибудь элегантный способ решить эту проблему, не нарушая при этом слишком много безопасности и не вмешиваясь в работу с исходными запросами страниц?