Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   userJS доступ к переменным страницы (Chrome) (https://javascript.ru/forum/css-html-browser/18349-userjs-dostup-k-peremennym-stranicy-chrome.html)

DragorWW 27.06.2011 13:23

userJS доступ к переменным страницы (Chrome)
 
Здравствуйте, передомной встала задача написать мини расширение для гугл хрома(скорее похоже на userJS). Так вот, требуется получить доступ к переменным из другого скрипта на странице.
Побывал сделать, при выполнение участка кода с обращением к переменной пишет ReferenceError: is not definite.
в manifest.json пробовал ставить "run_at": "document_end" не помогает, а так же setTimeout и другое не помогает.
При исполнение того же кода через консоль он работает как надо.

Сама перемена определяется, в конструкции вида( используется MooTools)
window.addEvent("domready", function() {
})


Я в JS совсем новичок не знаю как такое реализовать, подскажите пожалуйста.

Гугл с запросами вида "js доступ к переменным страницы" привел только боле менее внятной страничке на хабре, но и там нет ответа для Chrome.

Какие могут быть пути рещения ?

P.S. Ещё мини вопросик, а можно переопределить весь чужой код в своём расширение, что бы иметь доступ ковсему?

DragorWW 28.06.2011 01:16

Пока что нашёл один способ решение, но хотелось бы как нибудь по поэлегантнее.

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')

ваый 13.07.2011 15:33

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

и вы неправильно, кстати, гуглите. попробуйте по запросу:
"chrome extension access page variables" и тд.


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