firebug: как записать на iframe - PullRequest
       27

firebug: как записать на iframe

64 голосов
/ 19 февраля 2011

У меня есть приложение на холсте facebook, которое работает в iframe.Я хотел бы отладить свою страницу в firebug, но не могу получить доступ к javascript для iframe, на котором выполняется мое приложение.

iframe:

<iframe frameborder="0" src="[app_url_removed]" name="iframe_canvas" id="iframe_canvas" class="canvas_iframe_util" style="height: 905px;"></iframe>

Я пробовал все следующие, и ни одна из них не работает:

cd(iframe_canvas)
cd(window.iframe_canvas)
cd(iframe_canvas.window)
cd($('iframe_canvas'))

У меня Firefox 3.6.13, и я пыталсяfirebug 1.7a11 и firebug 1.6.2

также пробовали букмарклет и другие вещи по этой ссылке Селекторы Firebug и jQuery в iFrame безрезультатно.

Ответы [ 4 ]

104 голосов
/ 23 февраля 2011

используйте одну из следующих команд:

 cd(frames[0]) 
 cd(frames["iframe_canvas"])

и

 cd(top)

, чтобы вернуться к главному окну.

Тем не менее, из-за ошибки, которая в данный момент отсутствуетне работают с кросс-доменными фреймами (http://code.google.com/p/fbug/issues/detail?id=3893).. Существует два теста, в которых вы можете протестировать свою среду для обоих случаев:

Еще один возможный источник неожиданности: если вы выполнитебольше команд одновременно, команда cd, похоже, не оказывает влияния на следующие команды:

 >>> cd(frames[0]); location.href;
 ["Current window:", Window cdFrame.html]
 "https://getfirebug.com/tests/content/commandLine/cd.html"
 >>> location.href
 "https://getfirebug.com/tests/content/commandLine/cdFrame.html"
14 голосов
/ 01 ноября 2011

В Chrome есть раскрывающийся список в bottom top * консоли javascript, который позволяет переключаться на другой фрейм для выполнения javascript. Работает также в междоменном домене!

* Обновлено 14.10.14. В более поздних версиях Chrome этот раскрывающийся список перемещен снизу вверх в верхнюю часть консоли.

0 голосов
/ 09 апреля 2014

Я думаю, что вики не была обновлена ​​назад, когда был задан этот вопрос, но теперь у нее есть хорошие примеры: https://getfirebug.com/wiki/index.php/Cd

По сути, то, что вам не хватало, чтобы получить окно из элемента iframe, было ".contentWindow "

0 голосов
/ 10 апреля 2013

Доступ к элементам можно получить следующим образом: window.frames[x].document.getElementById("elementID");, где x будет индексом кадра, а elementID - элемент, на который вы указываете.

...