2015-01-19 3 views
3

Так что, используя верхние сайты Google Chrome, api имеет значения для URL-адреса и заголовка, но когда вы загружаете страницу Chrome по умолчанию по умолчанию, у нее также есть изображение этих сайтов, есть ли способ получить такое изображение для расширения? Если нет, как Google получает этот образ и как вы можете получить изображение веб-сайта, просматриваемого пользователем?Google Chrome Extension Top Sites Images

ответ

2

С этого момента вы не можете получить снимок экрана страницы, не загружая его внутри вкладки, Chrome просто получает эти скриншоты, пока вы просматриваете свои любимые сайты. Вы можете сказать это легко, потому что иногда сайты и изображения не совпадают (например, иногда мой сайт facebook.com имеет изображение моей страницы профиля, но ссылки на дом).

Затем, если вы хотите, чтобы ваши скриншоты Top Sites, вы должны будете начала без скриншотов, а также создавать их в то время как пользователь просматривает веб- с помощью chrome.tabs API, чтобы проверить, когда вкладка загружает один из Top Сайты (прослушивание события onUpdated), и получите скриншот этой вкладки, используя captureVisibleTab.

ПРИМЕЧАНИЯ: убедитесь, что вы запросили разрешение на "<all_urls>" в манифесте, который требуется для captureVisibleTab работать. Кроме того, вы можете найти this question и его ответ полезен.

+0

Нет, не получится. Для запуска захвата требуется жест пользователя: _ «Захват может быть запущен только на текущей активной вкладке после вызова расширения». _ – Xan

+0

@ Xan Извините, я связал неправильный API, я говорил о 'captureVisibleTab' с вкладками' API', см. [Этот вопрос] (http://stackoverflow.com/questions/18794407) для использования и захвата экрана из фона. –

+0

Не беспокойтесь. Я также обновил свой ответ. – Xan

0

Это, к сожалению, невозможно *. Chrome хранит эти миниатюры внутри URI, недоступных из расширения.

Существует существующий запрос особенности: https://code.google.com/p/chromium/issues/detail?id=11854

Если вы посмотрите на комментариях, один из основных вариантов использования является доступ миниатюр сайтов для репликации страницы New Tab.

Просмотрите запрос функции выше, чтобы повысить приоритет, если вы хотите, чтобы эта функциональность была реализована.

* Под этим я подразумеваю, что не возможно получить доступ к внутреннему хранилищу миниатюр Chrome.

Кроме того, поскольку Марко предложил способ репликации, это будет захват вкладок, но вы не можете сделать это «в фоновом режиме» по соображениям конфиденциальности - пользователю must make an explicit gesture (например, нажмите кнопку расширения, нажмите сочетание клавиш, и т. д.) для выполнения захвата.

Ответ Марко действителен сейчас, captureVisibleTab должен быть доступен при событиях. Но да, на данный момент Chrome заставляет вас иметь очень широкие разрешения и поддерживать свой собственный магазин миниатюр.