Firebug и селекторы jQuery в iFrame

Я работаю над веб-приложением и использую Палитру цветов плагина jQuery для появления окна, которое представляет форму для редактирования элементов родительского окна. Я использую Firebug для отладки моего JavaScript и jQuery, и я заметил, что не могу выбрать элемент в своей HTML-форме Палитры цветов с помощью консольной командной строки jQuery. Например:

$date = $ (" #date");

возвраты ничто, когда выполнено из консольной командной строки jQuery, даже при том, что у меня есть входной элемент с идентификатором = "дата" и Firebug "элемент, не осматривает" указатель, могут найти элемент в iFrame. Существует ли способ заставить консоль Firebug получать доступ к элементам в iFrame?

Спасибо за помощь! Doug

13
задан writes_on 22 March 2010 в 20:01
поделиться

2 ответа

Вам нужно передать документ iframe в качестве контекста для вашего селектора, потому что iframe имеет собственное отдельное дерево DOM:

$('#date', $('iframe').get(0).contentDocument);

Чтобы получить доступ к содержимому iframe, оно должно быть загружено из того же домена, что и родительский документ.


Чтобы уточнить, свойство .contentDocument работает в Chrome (и FF), но не в IE <8. Вы должны использовать .document .

15
ответ дан 1 December 2019 в 19:23
поделиться

Вы ищете метод cd , описанный здесь: http://getfirebug.com/wiki/index.php/Command_Line_API

Вот букмарклет, который я использую для автоматизации прыжков в iframe любого приложения Facebook с iframe. Он должен предоставить достаточно примеров для модификации для вашего использования.

javascript:with(_FirebugCommandLine){cd($$(".canvas_iframe_util")[0].contentWindow)}

Обратите внимание, что с , как правило, плохая практика, но Firebug буквально так выполняет то, что вы вводите в консоль, поэтому я скопировал это.

После запуска все, что вы вводите в командной строке, выполняется в контексте iframe.

21
ответ дан 1 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: