![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Всем привет. Пишу скрипт под плагин greasemonkey (для мозилы) и Tampermonkey (для google chrome). Для мозилы сделал все работет идеально. А вот под chrome проблемы.
Суть скрипта в следующем - добавить свою кнопку ко всем прикрепленным файлам в письме (речь о GMail). У них сделано так, что окно с текстом письма это iFrame, я пытаюсь получить к нему доступ через frames[3], в мозиле работает, в хроме не успевает (в хроме уже только после полной загрузки страницы, написав в консоли frame[3], будет видин DOMWindow). Подскажите какие могут быть варинты испаравления этой ситуации ? в какую сторону смотреть ? Код очень запутанный и разобраться в нем будет крайне сложно, поэтому не вижу смысла его постить. Буду рад любым советам =) Это сообщение отредактировал(а) 4epT - 27.2.2012, 17:40 |
|||
|
||||
Amphiluke |
|
|||
![]() ☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Ну так вы запускайте свой код после окончания загрузки страницы.
![]() |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Каким образом ?
У меня код обернут в $(document).ready результат тот же =( |
|||
|
||||
Amphiluke |
|
|||
![]() ☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
Ну, к примеру, так:
|
|||
|
||||
4epT |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Так мой код вообще не вызывается ![]() |
||||
|
|||||
Amphiluke |
|
|||
![]() ☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
То есть событие "load" окна не возникает?
![]() Только что открыл GMail, проверил в консоли. Все нормально срабатывает.
|
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Вставил Ваш пример) Да, событие произошло ... frames там тоже undefined =(
Попробовал в интервале ждать пока он будет готов, тоже никаких результатов. |
|||
|
||||
Amphiluke |
|
|||
![]() ☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
А вы можете проверить на отдельном чистом user script`е, выкинув весь посторонний код? Просто прям вот такой скрипт из одной строчки:
Я хз, у меня всё нормально пишет: «object», frames.length = 4. Правда, всё это при написании обработчика через консоль, но по большому счету, какая разница, наверное.. |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Выводит object, но мне почему то кажется что это не показатель ) так как в моем скрипте frames.length выводит 5
Внесу немного ясности в данный вопрос. У меня через интервал, проверяется измнение урла, как только в урле я вижу что пользователь зашел в письмо, я запускаю свою функцию .. и уже там frames undefined. Может как то можно задержать выполнение функции ? До того момента как будет доступен frames. |
|||
|
||||
Amphiluke |
|
||||||||
![]() ☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
А вы проверяли, что он в конце концов таки станет доступен? Именно из userscript?
Вообще говоря, если обработчик события 'load" у вас добавлен, все фреймы должны быть уже доступны к моменту его срабатывания. Но можно попытаться организовать опрос с интервалом
Добавлено через 2 минуты и 18 секунд Правильнее так:
|
||||||||
|
|||||||||
4epT |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
Выводит DOMWindow object, то есть все хорошо.
Не помогло ![]() |
||||||
|
|||||||
Amphiluke |
|
|||
![]() ☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 35 Всего: 112 |
||||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
В общем проблема была в самом хроме .... это его примочки с безопасностью =) он блокирует доступ к frames. Данную "фичу" обойти можно только написаем непосредственно плагина под хром, и самое решение проблемы далеко не самое легкое, поэтому решил пока что на хром забить ..
|
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |