Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Помогите разобраться в Chrome Extension инжекция кода в страницу (https://javascript.ru/forum/css-html/58307-pomogite-razobratsya-v-chrome-extension-inzhekciya-koda-v-stranicu.html)

karanak 14.09.2015 21:01

Помогите разобраться в Chrome Extension инжекция кода в страницу
 
Здравствуйте,

Решил написать расширение для хрома, чтобы управлять плеером в ютубе. Взял уже готовые решения и стал разбираться)

И возник такой вопрос по инжекции кода на страницу (пример отсюдаhttp://stackoverflow.com/questions/9...content-script )

дан код:
var actualCode = ['/* Code here. Example: */alert(0);',
                  ' // Beware! This array have to be joined',
                  ' // using a newline. Otherwise, missing semicolons',
                  ' //  or single-line comments (//) will mess up your',
                  ' //  code ----->'].join('\n');

var script = document.createElement('script');
script.textContent = actualCode;
(document.head||document.documentElement).appendChild(script);
script.parentNode.removeChild(script);


А теперь вопросы?)
1. что это за конструкция переданная в переменную actualCode и как она работает.
2. (document.head||document.documentElement) это я так понимаю добавление элементов для разных браузеров, или нет
3. script.parentNode.removeChild почему мы сначала добавляем элемент и сразу его удаляем?)

Спасибо.

karanak 15.09.2015 16:04

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

Получается, что скрипт передается в страницу, получает доступ к переменным или dom, передает данные в фоновую страницу и удаляется.

А если на странице еще не прогрузилось ничего? Тогда было бы разумно после загрузки удалять скрипт.
var onload = function() {
        script.parentNode.removeChild(script);
    };


Часовой пояс GMT +3, время: 09:55.