Есть ли способ изменить контекст на iframe в консоли javascript?
Я хотел бы изменить контекст javascript, выполняемого в консоли webkit developer tool/firebug, чтобы выполнить его код, как он работает внутри iframe на странице.
Я знаю, что могу сделать это, открыв страницу в iframe на отдельной странице, но я хочу запустить код, где он взаимодействует с родительским фреймом.
6 ответов:
Chrome 15 позволяет изменять область действия консоли. В нижней части консоли, рядом с кнопкой очистить консоль, есть меню, которое говорит
<top frame>который даст список доступных кадров:
Firefox имеет аналогичную функцию в настоящее время в развитии:
вы также можете перемещаться по кадрам С помощью командной строки:
var frame = document.getElementById("frame1").contentWindow; cd(frame);
вы можете выполнить код в
<iframe>С помощьюwindow.frames[x]функциональность. Например,window.frames[0].runFunction()
в сегодняшнем Chrome (версия 52) все, что вам нужно сделать, это выбрать iframe на вкладке "элементы" инструментов разработчика. Все, что вы запускаете в консоли JS, будет автоматически запускаться в контексте выбранного iframe.
например, здесь я выбрал iframe, и когда я набираю
document.location.pathnameв консоль он возвращает атрибут src iframe, а не URL из адресной строки:
для решения firebug см. ответ по другому так вопросу. Однако не работает кросс-домен, как решение Chrome Денниса.
Edit: с новыми версиями firebug они, возможно, исправили междоменную проблему.
выполнение операторов и команд скрипта по умолчанию выполняется в контексте окна верхнего уровня. Если вы используете фреймы, используйте команду консоли " cd ()".
cd () Вызов cd () без параметров возвращается в окно верхнего уровня.
cd (окно) Позволяет изменить оценку выражения командной строки из окна верхнего уровня веб-страницы по умолчанию в окно фрейма.
Подробнее, здесь



Comments