Вопрос по javascript, jquery – Расширение Google Chrome Манипулировать DOM открытой или текущей вкладки

16

Хорошо, JavaScript / jQuery, я понял, я могу работать с этим, чтобы делать то, что я хочу в целом. Однако в настоящее время я пытаюсь работать с DOM вкладки open / current, и мне интересно, возможно ли это или все, что я делаю с расширением, ограниченным html, я предоставляю ему фон & quot; .html & Quot; или эквивалент.

Для сегодняшней попытки нанести удар по расширению Google я хочу взять изображения на странице и сохранить их в массиве, чтобы создать эффект слайд-шоу, подобный эффекту, через панель, которую я хочу добавить в нижней части страницы, добавляя ее к существующий DOM открытой / текущей вкладки. Затем я хочу "скрыть" элементы в DOM, пока бар закрыт.

Итак, мой первый вопрос: возможно ли что-то подобное, могу ли я манипулировать DOM таким образом и читать из него.

code.google.com/chrome/extensions/tabs.html посмотрите на executeScript Gavriel
@ Гавриил документация расширений дерьмо. Я полагаю, именно поэтому все спрашивают примерно одинаково в stackoverflow Despertaweb
Если это имело место в 2012 году, это плохо. Если это так в 2016 году, то это очень и очень плохо! Gavriel

Ваш Ответ

1   ответ
28

Сценарии содержания сценарии, которые выполняются в среде между страницей и расширением Chrome. Эти скрипты загружаются при каждой загрузке страницы и имеютfull access to the page's DOM, Методы DOM, такие какdocument.getElementById() вести себя так, как будто они были частью страницы.

Глобальныйwindow объекты (в том числеframes а такжеHTMLIFrameElement.contentWindow) являются единственными объектами, которые не являютсяdirectly читается контент-скриптами.

Сценарии содержимого запускаются на каждой странице какопределено в файле манифеста, Укажитеобразец соответствия на"content_scripts" раздел, чтобы определить, на каких страницах должен выполняться скрипт содержимого. Также добавьте этот шаблон к"permissions" раздел, чтобы разблокировать возможность изменять DOM страницы.

Note: Тольконекоторые изchrome.* APIs, могут быть использованы этими сценариями (такими какchrome.extension.sendRequest общаться сфоновая страница).

Вbackground pageDOM страницы не доступен напрямую. Вы можете ввести сценарии в произвольной вкладке, используяchrome.extension.executeScript, но вы не сможете получитьdirect ссылка на элемент. Для этого требуются скрипты контента.

Другая вещь, к которой у скриптов контента нет доступа на странице - это cssRules.
@PAEzconsole.log(document.styleSheets[1].cssRules[0].selectorText); показывает одинаковые результаты для скриптов содержимого и обычных страниц (null всегда возвращается, когда таблица стилей имеет другое происхождение).
Дам, твое право (как обычно;) ... Я уверен, что ты не мог однажды, и именно поэтому я написал это ...stackoverflow.com/questions/9320982/…

Похожие вопросы