Firebug: как подключиться к iframe

У меня есть приложение холста 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 безрезультатно.

Ответ 1

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

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

и

 cd(top)

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

Тем не менее, из-за ошибки, которая в настоящее время не работает в междоменных-iframes (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"

Ответ 2

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

* Обновлено 2/10/14: В последних версиях Chrome это выпадающее меню было перемещено снизу вверху консоли.

Ответ 3

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

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

Ответ 4

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