Доступ к фреймам из расширения содержимого-скрипта Chrome - PullRequest
15 голосов
/ 15 октября 2010

Я пишу расширение Chrome, которое должно изменить популярное веб-приложение при загрузке.К сожалению, большая часть пользовательского интерфейса этого веб-приложения отображается внутри iframe, и хотя адрес этого iframe совпадает с моим объявлением о совпадении content_scripts, пользовательский сценарий вызывается только для верхнего кадра.

Q:Есть ли способ доступа к HTML, отображаемому внутри iframe из расширения скрипта содержимого Chrome?Если да, какие разрешения и другие параметры манифеста я должен указать?Спасибо.

Ответы [ 2 ]

39 голосов
/ 15 октября 2010

Я решил проблему. В разделе content_scripts файла manifest.json должна быть указана следующая опция: "all_frames": true. Без этого скрипт применяется только к верхнему фрейму.

// Иногда нужно просто внимательно относиться к RTFM.

8 голосов
/ 09 марта 2011

Даже "all_frames": true, похоже, не помогает в случае iframes без @src. Это обсуждается в ошибке http://code.google.com/p/chromium/issues/detail?id=20773,, которая также охватывает некоторые обходные пути, включая получение contentDocument элемента iframe на исходной странице, например, $('a', $($("#canvas_frame")[0].contentDocument)).

Эта ошибка не совсем та, с которой вы столкнулись (вы хотели загрузить свой контент-скрипт внутри iframe, а не взаимодействовать между iframe и внешним фреймом), но я думаю, что большинство людей, у которых есть одна из проблем, будут еще один.

...