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
- это элемент, на который вы указываете.