Не удается внедрить сценарий содержимого во все IFRAME из моего расширения Chrome

В моем расширении Google Chrome мне нужно иметь возможность внедрить мой скрипт контента во все IFRAME на странице. Для этого мой оригинальный manifest.json был объявлен как таковой:

"content_scripts": [
    {
        "run_at": "document_end",
        "all_frames" : true,
        "matches": ["http://*/*", "https://*/*"],
        "js": ["content.js"]
    }
],

Похоже, это работало для большинства сайтов, пока я не наткнулся на IFRAME, который был объявлен как таковой:

(из отладчика Chrome) введите здесь описание изображения

и вот HTML для него:

<iframe id="wysiwygtext_ifr" src='javascript:""' frameborder="0" allowtransparency="true" title="Rich Text Area." style="width: 100%; height: 341px; display: block;"></iframe>

В этом случае мой контент-скрипт не внедряется в этот файл IFRAME.

Я попытался изменить фильтр matches на "matches": ["<all_urls>"], но это все равно не помогло.

Есть ли способ внедрить мой скрипт контента в такой IFRAME?


person c00000fd    schedule 10.09.2014    source источник


Ответы (1)


Это именно та проблема, для которой был создан флаг match_about_blank. Наконец, он был выпущен в стабильной версии Chrome 37.

Просто добавьте "match_about_blank": true к определению сценария содержимого.

Вы также можете использовать его в tabs.executeScript. Видеть:

person Scott    schedule 10.09.2014
comment
Эй, ты мужчина! Спасибо. Я как-то упустил из виду флаг match_about_blank. Я также столкнулся с решением tabs.executeScript, но не смог понять, как его использовать для внедрения моего скрипта контента при загрузке страницы. Можете ли вы расширить это? - person c00000fd; 10.09.2014
comment
Если вы хотите выполнять инъекцию при каждой загрузке страницы, вам следует просто использовать определение скрипта контента. Чтобы использовать tabs.executeScript, вы обычно используете фоновую страницу, которая прослушивает tabs.onUpdated и вызывает tabs.executeScript при каждой загрузке страницы. - person Scott; 10.09.2014
comment
Хорошо, а что насчет iframe, который он представил, сделал его пустым iframe? Я что-то пропустил? - person rogerdpack; 28.10.2016