2013-03-19 4 views
1

Я хотел бы знать все компоненты и шаги, необходимые для создания расширения Google Chrome, которое сможет удалить некоторые элементы DOM изнутри iframe на определенной странице.Расширение Chrome для удаления элементов DOM внутри iframe

Мои исследования показывают, что это невозможно с помощью обычного javascript из-за той же политики происхождения.

Вручную удалять элементы DOM из проверки кода в Chrome до тех пор, пока я не получил, но я хочу автоматизировать это.

Из других подобных вопросов (главным образом this one), похоже, что расширение Chrome должно быть в состоянии сделать это. Я считаю, что this - самый схожий вопрос, но на него еще не ответили, а также не так ясно.

Честно говоря, я мог бы взять это отсюда, но я думаю, что другие люди могут извлечь выгоду из этого вопроса и ответа, даже если я в конечном итоге отвечу на себя.

Пример HTML:

<!DOCTYPE html> 
<html> 
<body> 
    <iframe src="iframe.htm"></iframe> 
</body> 
</html> 

И iframe.htm:

<!DOCTYPE html> 
<html> 
<body> 
    <div id="targetDiv"></div> 
</body> 
</html> 

Конечный результат должен быть таким же, как работает (с JQuery):

$('#targetDiv').remove(); 

, который, конечно, не делает Работа.

+0

Ссылка «главным образом эта» охватывает все, что вам нужно. Хотя это может быть намного проще, вам даже не нужен jQuery. –

ответ

4

Я выполнил все, что хотел, поэтому вот ответ.

Первое, что вам нужно для расширений Chrome - файл манифеста, manifest.json. Вот рабочий пример:

{ 
    "manifest_version": 2, 

    "name": "iframe manipulation extension example", 
    "description": "This extension allows to run scripts that manipulate cross domain IFRAME contents.", 
    "version": "1.0", 

    "permissions": [ 
    "*://target-site.com/*" 
    ], 
    "content_scripts": [ 
    { 
     "matches": [ 
     "*://target-site.com/*" 
     ], 
     "js": ["script.js"], 
     "all_frames": true 
    } 
    ] 
} 

Он имеет некоторые понятные значения, а затем permissions и content_scripts. В основном это говорит о том, что это расширение будет работать только при доступе к target-site.com. Мы указываем файл, который хотим запустить, а также установить "all_frames": true, который будет запускать указанный файл для каждого кадра на странице.

Вы можете, конечно, запустить любой javascript, который вам нужен, в файле/с вашей ссылкой в ​​вашем манифесте.

Перейдите на страницу chrome://extensions/, чтобы загрузить распакованное расширение или упаковать его.

Обратите внимание, что существуют другие способы получить расширение для запуска скриптов. Это как раз то, что у меня получилось самым простым способом.

Смежные вопросы