Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.11.2013, 19:31
Новичок на форуме
Отправить личное сообщение для skruks Посмотреть профиль Найти все сообщения от skruks
 
Регистрация: 06.04.2013
Сообщений: 7

Нет прав на фрейм
Набираю в консоли Firebug (или другой):
//Нахожу некий фрейм в окне:
document.querySelectorAll("div#comments-test-iframe iframe");
Пытаюсь с этим фреймом что-либо делать. Мне говорят, что я не имею прав на это.
Как запустить команду в консоли (а потом и в расширении) так, чтобы я имел все права на нужный фрейм?

Последний раз редактировалось skruks, 16.11.2013 в 19:34.
Ответить с цитированием
  #2 (permalink)  
Старый 17.11.2013, 05:45
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от skruks
skruks
Если фрейм не на том же домене, что и главное окно - доступа из ява скрипт - нет
Если на том же, то типичная ошибка: не дожидаются события загрузки фрейма

Второе, доступ к контент осуществляется ... Пример:

Frame = document.querySelectorAll("div#comments-test-iframe iframe");
Frame.onload = function() {
 docFrame=Frame.contentWindow.document;
 alert(docFrame.body.innerHTML)
}

Последний раз редактировалось Deff, 17.11.2013 в 05:49.
Ответить с цитированием
  #3 (permalink)  
Старый 17.11.2013, 08:51
Новичок на форуме
Отправить личное сообщение для skruks Посмотреть профиль Найти все сообщения от skruks
 
Регистрация: 06.04.2013
Сообщений: 7

Фрейм у меня уже подгружен
Пишу так:
var Frame = document.querySelectorAll("div#comments-test-iframe iframe");
docFrame=Frame[0].contentWindow.document;
alert(docFrame.body.innerHTML)

А мне в ответ всё то же:
Error: Permission denied to access property 'document'

Наверное, фрейм в другом домене. И как теперь с ним работать?

Последний раз редактировалось skruks, 17.11.2013 в 09:09.
Ответить с цитированием
  #4 (permalink)  
Старый 17.11.2013, 14:17
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от skruks
Наверное, фрейм в другом домене. И как теперь с ним работать?
Если есть возможность установки своих скриптов во фрейм - пробуйте через postMessage http://javascript.ru/ajax/cross-origin-2
или смотреть иной вариант кросс обмена
Ответить с цитированием
  #5 (permalink)  
Старый 17.11.2013, 16:29
Новичок на форуме
Отправить личное сообщение для skruks Посмотреть профиль Найти все сообщения от skruks
 
Регистрация: 06.04.2013
Сообщений: 7

Сообщение от Deff Посмотреть сообщение
Если есть возможность установки своих скриптов во фрейм - пробуйте через postMessage http://javascript.ru/ajax/cross-origin-2
или смотреть иной вариант кросс обмена
О май гадбл!) Читал я про postMessage - проще повеситься.
Но ведь проблема то банальная. Неужели нет способа попроще?!

Последний раз редактировалось skruks, 17.11.2013 в 16:36.
Ответить с цитированием
  #6 (permalink)  
Старый 25.01.2014, 11:53
Новичок на форуме
Отправить личное сообщение для skruks Посмотреть профиль Найти все сообщения от skruks
 
Регистрация: 06.04.2013
Сообщений: 7

Выяснил, что в расширении права на фрейм можно получить, даже если он из другого домена. Для этого работать с фреймом нужно, получив его в контексте например всплывающего меню, вызванного щелчком мышки по области фрейма:
docframe = document.popupNode.ownerDocument;
А Firebug так не умеет.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка контента в центральный фрейм по клику в tree.Panel sergeyv ExtJS 9 06.09.2013 20:40
как обернуть страницу во фрейм если она не хочет? Kvark Элементы интерфейса 19 07.08.2013 15:46
JS меню работает на обычной html странице, а на юкозовском движке нет. adware Я не знаю javascript 10 16.05.2009 16:48
загрузка страницы во фрейм matana Общие вопросы Javascript 4 01.05.2009 23:51
Как узнать свернуто окно браузера или нет. bar-boss Events/DOM/Window 3 25.09.2008 16:09