userJS доступ к переменным страницы (Chrome)
Здравствуйте, передомной встала задача написать мини расширение для гугл хрома(скорее похоже на userJS). Так вот, требуется получить доступ к переменным из другого скрипта на странице.
Побывал сделать, при выполнение участка кода с обращением к переменной пишет ReferenceError: is not definite. в manifest.json пробовал ставить "run_at": "document_end" не помогает, а так же setTimeout и другое не помогает. При исполнение того же кода через консоль он работает как надо. Сама перемена определяется, в конструкции вида( используется MooTools) window.addEvent("domready", function() { }) Я в JS совсем новичок не знаю как такое реализовать, подскажите пожалуйста. Гугл с запросами вида "js доступ к переменным страницы" привел только боле менее внятной страничке на хабре, но и там нет ответа для Chrome. Какие могут быть пути рещения ? P.S. Ещё мини вопросик, а можно переопределить весь чужой код в своём расширение, что бы иметь доступ ковсему? |
Пока что нашёл один способ решение, но хотелось бы как нибудь по поэлегантнее.
manifest.json: "content_scripts": [ "js": ["init.js"], "run_at": "document_end" } ], function include(url) { var script = document.createElement('script'); script.setAttribute('type', 'text/javascript') script.setAttribute('src', url); document.getElementsByTagName('head').item(0).appendChild(script); } include('chrome-extension://ifihndkdhfbnlacjcjmejcehaklmoemd/script.js') |
это понятные ограничения.
ответ - нет. способ через вставку тэга скрипт не очень элегантен, но работает. к тому же есть еще вариант через dom элементы, используя скажем атрибуты и пользовательские события для обмена данными. см: тут. и вы неправильно, кстати, гуглите. попробуйте по запросу: "chrome extension access page variables" и тд. |
Часовой пояс GMT +3, время: 04:37. |