Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- manifest.json — стандартный файл описания расширения
- background.js — content script, загружающий внедряемый код
- injected.js — непосредственно внедряемый код
- jquery.js — используется для получения содержимого файла скрипта через ajax. Подробную информацию можно найти на сайте jquery.com
- Рассмотрим подробнее содержимого каждого из файлов:
- manifest.json
- {
- "name": "JS Code Injection",
- "version": "1.0",
- "manifest_version": 2,
- "content_scripts": [
- {
- "matches": [ "http://extension.target.url" ],
- "js": [ "jquery.js", "background.js" ],
- "run_at": "document_end"
- }
- ],
- "web_accessible_resources": [
- "/injected.js"
- ]
- }
- Файл с внедряемым кодом injected.js описан в разделе web_accessible_resources, для того чтобы позднее получить к нему доступ из content-скрипта.
- injected.js
- function injected_main() {
- alert('Injected!');
- }
- возможно использовать локальное javascript окружение страницы, в которую внедряется код.
- background.js
- $.get(chrome.extension.getURL('/injected.js'),
- function(data) {
- var script = document.createElement("script");
- script.setAttribute("type", "text/javascript");
- script.innerHTML = data;
- document.getElementsByTagName("head")[0].appendChild(script);
- document.getElementsByTagName("body")[0].setAttribute("onLoad", "injected_main();");
- }
- );
- Мы используем стандартную функцию Chrome Extension API chrome.extension.getURL(), которая возвращает путь, локальный для расширения.
- Далее мы запрашиваем данный файл через ajax и после успешного получения создаем новый элемент в основной странице (Благодаря Shared DOM мы можем манипулировать элементами страницы без лишних усилий)
- Последним пунктом мы устанавливаем функцию, которая будет вызвана после загрузки страницы (функция injected_main() описана в файле injected.js)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement