Страницы: 1
Добрый день.
на страницах вконтакта при запущенном аудио плеере в глобальных переменных появляется объект audiopleer.
У этого объекта есть методы: pause, play, prev, next, add.
как можно получить доступ к этому объекту.
я прочитал статьи про https://developer.mozilla.org/en/Code_snippets/Tabbed_browser и все статьи рядом
пробовал получить доступ к объекту через contentWindow и contentDocument. каждый раз объект audiopleer был undefined
сейчас в расширении https://addons.mozilla.org/ru/firefox/addon/vk-player-control-panel/ используется следующий метод
1) запоминаем текущую вкладку
2) находим вкладку вконтакта
3) делаем ее активной
4) находим элементы управления
5) посылаем им клик
6) делаем предыдущую вкладку активной
это работает, мигания вкладок нет, но я считаю этот метод неправильным
у меня есть еще один вариант получения доступа к объектам
0) находим нужную вкладку и делаем ее активной
1) создаем на странице элемент
2) добавляем в него обработчик onclick, который получит доступ к глобальным объектам, все полученные данные сложит в дочерние объекты
3) посылаем элементу событие mouseclick
4) из дочерних элементов получаем данные
5) удаляем элемент
есть менее извратный вариант получения доступа к глобальным объектам других вкладок?
Отсутствует
у меня получился вот такой рабочий метод получения данных из объекта _gat.
есть ли варианты проще?
test4: function(){ script = window.content.document.getElementById('_script'); // если контейнер со скриптом пуст сохдаем контейнер и скрипт if ( script == null){ script = window.content.document.createElement('div'); script.setAttribute('id','_script'); script.setAttribute('onclick','_xz_func();'); body.appendChild(script); script_text = window.content.document.createElement('script'); var newtext = document.createTextNode(" function _xz_func(){ "); script_text.appendChild(newtext); newtext = document.createTextNode(" _xz = document.getElementById('_xz'); "); script_text.appendChild(newtext); newtext = document.createTextNode(" if (_xz == null ){ "); script_text.appendChild(newtext); newtext = document.createTextNode(" _xz = document.createElement('div'); "); script_text.appendChild(newtext); newtext = document.createTextNode(" _xz.setAttribute('id', '_xz'); "); script_text.appendChild(newtext); newtext = document.createTextNode(" document.body.appendChild(_xz); "); script_text.appendChild(newtext); newtext = document.createTextNode(" } "); script_text.appendChild(newtext); newtext = document.createTextNode(" while (_xz.firstChild) { "); script_text.appendChild(newtext); newtext = document.createTextNode(" _xz.removeChild(_xz.firstChild); "); script_text.appendChild(newtext); newtext = document.createTextNode(" } "); script_text.appendChild(newtext); newtext = document.createTextNode(" "); script_text.appendChild(newtext); // получаем данные объекта _gat, объект создаваемый скриптом гугл аналитики // и складываем их в <div id = "_xz"> newtext = document.createTextNode(" for ( x in _gat){ "); script_text.appendChild(newtext); newtext = document.createTextNode(" _temp = document.createElement('div'); "); script_text.appendChild(newtext); newtext = document.createTextNode(" _temp.setAttribute('_test',x); "); script_text.appendChild(newtext); newtext = document.createTextNode(" _xz.appendChild(_temp); "); script_text.appendChild(newtext); newtext = document.createTextNode(" "); script_text.appendChild(newtext); newtext = document.createTextNode(" } "); script_text.appendChild(newtext); newtext = document.createTextNode(" } "); script_text.appendChild(newtext); script.appendChild(script_text); } var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); // за пускаем сборщик script.dispatchEvent(evt); // получаем данные из элемента на странице xz = window.content.document.getElementById('_xz'); cells = xz.getElementsByTagName('div'); var s=''; for (var i = 0; i < cells.length; i++) { var status = cells[i].getAttribute("_test"); s = s + status +'; '; } var ts = Math.round((new Date()).getTime() / 1000); window.content.document.title = ts+' '+s; },
Отсутствует
Страницы: 1