Chrome extension inject content script

400
21 января 2017, 13:26

Добрый день. Прежде не сталкивался с Chrome Extensions, но нужно на скорую руку накидать скелет расширения с функционалом примерным Greasemonkey (на том же firefox)

В просматриваемые сайты нужно внедрять javascript код, который бы исполнялся не в песочнице, с правами пользователя. Перелопатил много форумов и топиков, но везде одни костыли. Как greasemonkey и ему подобные приложения внедряют код в страничку?

И еще замахнусь на совсем волшебный функционал, который просто меня бы спас: На уровне самого расширения есть "системные" функции, например GM_xmlhttpRequest. Эта функция будет доступна в нашем исполняемом JS-файле, а реализована в расширении. В какую сторону смотреть, чтобы примерно понять алгоритм реализации такого функционала?

Дело в том, что у меня уже есть много функций написанных под Greasemonkey и нужно чтобы они заработали в рамках своего расширения для Хрома.

Задаем еще один вопрос, который просто был бы для меня подарком. В Дополнениях Хрома есть такая вещь как chrome.app.window. Было бы идеально открывать новый сайт в новом окне (я знаю, что оно откроется в другом процессе и с другой сессией) , внедрять туда скрипт с дополнительно реализованными функциями (см выше). При этом чтобы все это максимально напоминало обычную работу с браузером. Дело в том, что в chrome.app.window можно записать только iframe или webview, а эти компоненты несколько ограничивают комфортную работу (нет адресной строки браузера и тд).

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

Буду очень благодарен за любую помощь. Спасибо.

Answer 1

С greasemonkey не работал, но с хромом знаком.
Установите порт этого расширения на Chromium-совместимые браузеры: Tampermonkey.
Скрипты обещают полную совместимость, т. е. публичный API один.

Если в разрешениях (permissions) запросить доступ, тогда CORS не помеха, используйте стандартный XMLHttpRequest.

READ ALSO
Не действует разделения [требует правки]

Не действует разделения [требует правки]

Такой ВопросПочему я не могу к slides написать style

269
Получать метки пользователей leafletjs

Получать метки пользователей leafletjs

Всем здравствуйтеИспользую библиотеку leafletjs для osm

244
Canvas чудить в веб сайте

Canvas чудить в веб сайте

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

229
JavaScript split slice join

JavaScript split slice join

Кто может подсказать что конкретно находится под капотом функций split, slice, join?

254