Я хотел бы изменить контекст javascript, выполняемого в консоли разработчика webkit / firebug, чтобы выполнить его код, как будто он выполняется внутри iframe на странице.
Я знаю, что могу сделать это, открыв страницу в iframe на отдельной странице, но я хочу запустить код, в котором он взаимодействует с родительским фреймом.
window.frames[x]
моде. Просто добавьте любую команду, которую хотите. IEwindow.frames[0].runFunction()
Ответы:
Chrome 15 позволяет изменять объем консоли. Внизу консоли, рядом с кнопкой очистки консоли, есть меню, в
<top frame>
котором указано, в котором отображается список доступных кадров:В Firefox есть аналогичная функция, которая сейчас находится в разработке:
Вы также можете перемещаться по фреймам с помощью командной строки :
источник
Вы можете выполнить код в
<iframe>
s, используяwindow.frames[x]
функциональность. Например,источник
window.frames[0].alert()
В сегодняшнем Chrome (версия 52) все, что вам нужно сделать, это выбрать iframe на вкладке «Элементы» инструментов разработчика. Все, что вы запускаете в консоли JS, будет автоматически запускаться в контексте выбранного iframe.
Например, здесь я выбрал iframe, и когда я ввожу
document.location.pathname
в консоль, он возвращает атрибут src iframe вместо URL-адреса из адресной строки:источник
Для решения firebug см. Этот ответ на другой вопрос SO. Однако не работает междоменный, как решение Денниса Chrome.
Изменить: с более новыми версиями firebug они могут иметь исправленную междоменную проблему.
источник
Выполнение операторов сценария и команд по умолчанию выполняется в контексте окна верхнего уровня. Если вы используете фреймы, используйте консольную команду «cd ()».
cd () Вызов cd () без параметров возвращает в окно верхнего уровня.
cd (window) Позволяет вам изменить оценку выражения командной строки из окна верхнего уровня веб-страницы по умолчанию на окно фрейма.
Больше информации здесь
источник
источник