2016-11-15 2 views
0

Я хочу создать расширение chrome с пользовательским интерфейсом, который извлекается с удаленного сервера, а не с статическим файлом в репозитории расширений. Я попробовал следующее, но хром не смог загрузить страницу.Render chrome extension popup UI динамически

chrome.browserAction.setPopup({ 
    "popup": "http://xxx.xxx.xxx/web.html" 
}); 

Я также добавил домен в список разрешений. Возможно ли это с помощью инструментов google chrome dev?

ответ

1

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

Однако вы можете встроить удаленную страницу во всплывающее окно как iframe (при условии, что удаленная страница не имеет защиты от встроенного).

+0

Решение iframe выглядит хорошо. Но возможно ли, что моя фоновая страница загружает макет с использованием XHR, а затем отправляет его в popup.html и переписывает макет с помощью document.write или что-то еще, что является правильным объектом для poup? –

+0

С одной стороны, это возможно. С другой стороны, это очень плохая идея с точки зрения безопасности (вы размещаете удаленный код в гораздо более высокий привилегированный контекст) и, вероятно, сломаете страницу [из-за CSP] (https://developer.chrome.com/extensions/contentSecurityPolicy). На самом деле, эта идея плохо с точки зрения безопасности, что, вероятно, это приведет к тому, что ваше расширение будет отклонено при публикации, если оно будет рассмотрено. – Xan

+0

Лучшим из двух миров было бы запрашивать (или очищать) данные с веб-страницы, дезинфицировать их и создавать на основе этого свой собственный динамический интерфейс. – Xan

Смежные вопросы