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, время: 13:07. |