Как сохранить всплывающее окно расширения Google Chrome открытым? - PullRequest
28 голосов
/ 10 ноября 2010

Если я открываю свое всплывающее окно расширения, то я открываю другое окно или вкладку, после того как всплывающее окно не остается открытым, если я возвращаюсь к нему.

Есть ли способ заставить его так открыть всплывающее окно?

Ответы [ 7 ]

26 голосов
/ 10 ноября 2010

Как пользователь , вы не можете заставить всплывающее окно оставаться открытым. Это решение UI, принятое командой UI. Если вы хотите принудительно запустить настройку, вы можете показать это другим способом, изменив всплывающий значок, открыв новую вкладку при запросе или открыв новый всплывающий вид для регистрации.

Как разработчик , проверьте всплывающее окно, и оно останется открытым.

6 голосов
/ 01 июня 2015

Вы не можете остановить закрытие всплывающего окна Chrome , если только вы не находитесь в режиме разработчика.Вы можете рассмотреть эту альтернативу, хотя:

Вместо этого запускается обычное всплывающее окно:

В вашем файле popup.html загрузите файл Javascript, который запускает это:

var popupWindow = window.open(
    chrome.extension.getURL("normal_popup.html"),
    "exampleName",
    "width=400,height=400"
);
window.close(); // close the Chrome extension pop-up

Откроется файл normal_popup.html в вашем расширении в обычном всплывающем окне, которое не закроется, если оно потеряет фокус.Поскольку параметр name совпадает, всплывающее окно будет повторно использовано, если пользователь снова запустит popup.html.

6 голосов
/ 05 марта 2013

В ответе на FAQ здесь: http://developer.chrome.com/extensions/faq.html#faq-persist-popups

Всплывающие окна автоматически закрываются, когда пользователь фокусируется на какой-то части браузера вне всплывающего окна. Невозможно оставить всплывающее окно открытым после того, как пользователь щелкнул.

2 голосов
/ 16 ноября 2015

Если вы включаете панели в "chrome: // flags / # enable-Panel", вы можете использовать что-то вроде:

chrome.windows.create({
    url:"popup.html",
    type:"panel",
    width:300,
    height:200
});

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

0 голосов
/ 30 июня 2019

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

Вместо этого вы могли бы добавить HTML-код на страницу, которая загружает содержимое, которое вы хотите во всплывающем окне, в элемент, который наводится на существующую страницу. Вы должны будете реализовать близкую функциональность самостоятельно, но она сохранится.

Посмотрите, например, как keyframes.app сделал это: https://github.com/mitchas/Keyframes.app/blob/master/Keyframes.app%20(Extension)/src/inject/ui.js

0 голосов
/ 12 октября 2018

Лучший способ обойти это:
- Щелкните правой кнопкой мыши во всплывающем окне надстройки
- осмотрите (или CTRK + Shift + I)

откроется новое окно с проверкойпросто оставьте это окно, и всплывающее окно надстройки никогда не закроется

0 голосов
/ 09 мая 2017

Этот ответ на Как предотвратить закрытие инструментов разработчика Chrome при закрытии текущего окна браузера? что очень полезно в моем случае:


Не идеальное решение, но вы можете добавить точки останова в события Window.close и выгрузить, установив флажки в:

Developer tools -> "Sources" tab -> Event Listener Breakpoints -> Window -> close

И

Event Listener Breakpoints -> Load -> unload

Попробуйте пометить оба и посмотреть, какой из них лучше всего подходит для вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...