Ответ 1
Я решил проблему. Следующий параметр должен быть указан в разделе content_scripts манифеста. Json: "all_frames": true
. Без него script применяется только к верхнему кадру.
//Иногда требуется только RTFM.
Я пишу расширение Chrome, которое необходимо изменить при загрузке популярного веб-приложения. К сожалению, большая часть пользовательского интерфейса этого веб-приложения отображается внутри iframe, и хотя адрес этого iframe соответствует объявлению соответствия content_scripts
, пользователь script только вызывается для верхнего кадра.
В: Есть ли способ доступа к HTML, отображаемому внутри iframe, из расширения содержимого Chrome? Если да, какие разрешения и другие варианты манифеста следует указать? Спасибо.
Я решил проблему. Следующий параметр должен быть указан в разделе content_scripts манифеста. Json: "all_frames": true
. Без него script применяется только к верхнему кадру.
//Иногда требуется только RTFM.
Даже "all_frames": true
, похоже, не помогает в случае iframe без @src. Это обсуждается в ошибке http://code.google.com/p/chromium/issues/detail?id=20773, которая также охватывает некоторые обходные пути, включая получение contentDocument
элемента iframe на исходной странице, например. $('a', $($("#canvas_frame")[0].contentDocument))
.
Эта ошибка не является именно той проблемой, с которой вы столкнулись (вы хотели загрузить свой контент script внутри iframe, а не взаимодействовать между iframe и внешним фреймом), но я думаю, что большинство людей, у кого есть одна из проблем, есть и другой.