Я знаю, что Chrome давайте вы выберете контекст для выполнения консоли с помощью раскрывающегося меню, и этот Firebug позволит вам cd()
в iframe. Я не могу понять, как изменить контекст в консоли Safari. Кто-нибудь знает как это сделать?
Измените контекст консоли Safari 6 на iframe на странице.
Ответы (2)
Safari, в отличие от Chrome и Firefox, не имеет реальной поддержки этой функции, и кажется, что единственный вариант — получить доступ к объекту окна из консоли. Как вы правильно указали, это вызовет проблемы междоменной политики, однако при условии, что вы работаете на Mac (по какой-то причине это не работает в Windows), вы можете использовать
open -a '/Applications/Safari.app' --args --disable-web-security
чтобы обойти это. А затем в вашем jsbin вы можете использовать что-то вроде
window.frames[0]
для доступа к окну страницы. Насколько я вижу, аналогичного решения для окон нет, т.к.
Safari.exe --disable-web-security
видимо не работает.
person
David Mulder
schedule
06.03.2013
Сам элемент Iframe имеет тип окна в консоли.
<iframe id="frame" src="about:blank"/>
В консоли Safari вы просто работаете с
frame.document.write('bla');
обратите внимание, что «кадр» — это сокращение от document.getElementById('frame')
person
mr.VVoo
schedule
20.02.2013
К сожалению, это не работает с фреймами с доменом, отличным от хост-страницы. Вот почему команда firebug
cd
и раскрывающееся меню Chrome для изменения контекста так полезны...
- person Aaron Gibralter; 21.02.2013
Конечно? Я попробовал это с другим URL, и это сработало. Только для публикации я изменил это на about:blank.
- person mr.VVoo; 21.02.2013
Ага: jsbin.com/ojiley/2 -- когда я открываю консоль Safari и набираю:
document.getElementById("test-iframe").document
I получить undefined
: cl.ly/image/0N0v1l223w1m
- person Aaron Gibralter; 21.02.2013
попробуйте
document.getElementById("test-iframe").contentDocument
или document.getElementById("test-iframe").contentWindow
. дополнительно можно вывести все части фрейма в консоль: for(var key in document.getElementById("test-iframe")) console.log(key);
чтобы найти все полезные атрибуты.
- person mr.VVoo; 21.02.2013
Нет, я все еще не могу получить доступ к чему-либо в iframe. Вы уверены, что используете Safari 6.x?
- person Aaron Gibralter; 21.02.2013
Да, конечно. Safari 6 на OS X Mountain Lion. И я попробовал их, и у меня был доступ к объекту документа iframe.
- person mr.VVoo; 21.02.2013
Хм, @mr.VVoo, не могли бы вы сказать мне, какой код вы вводите в консоль Safari Web Inspector, чтобы получить доступ к элементу dom на странице Amazon.com в iframe?
- person Aaron Gibralter; 22.02.2013
вот скриншот imageshack.us/photo/my-images/833/bildschirmfoto20130221u. png
- person mr.VVoo; 22.02.2013
давайте продолжим это обсуждение в чате
- person Aaron Gibralter; 22.02.2013