Чтение «своих» свойств у dom элемента из content_script Chrome's Extentsion
Здравствуйте. Разрабатываю расширение для Google Chrome. Понадобилось разбирать страницы одного сайта, конкретно есть элемент с определенным id, я так понял, что какой-то скрипт этого сайта устанавливает этому элементу нестандартное свойство t_content. Я могу получить доступ к этому свойству через консоль хрома: document.getElementById('item_id').t_content;
Код выдает в консоль строку - то, что нужно. Мне это же самое необходимо проделать в content_script, но только typeof этого свойства там оказывается "undefined". Не пойму в чем дело. Пробовал в manifest.json играть с run_at, но это ничего не дало, тем более дефолтное значение как раз подходит. Элемент во время запроса уже существует, но свойства нет. Свойство это устанавливается скриптом, учитывая возможную задержку, использовал setTimeout, но множество итераций таймера с задержкой 500мс ничего не изменило - всё тот же "undefined".
Пробовал этому же элементу в консоли устанавливать другие "свои" свойства: результат тот же.
В чем может быть проблема, может баг, или я что-то не учел.
В общем-то, после внимательного изучения доков выяснилось, что content_script изрядно изолирован от страницы сайта, и среды выполнения (Execution environment) javascript полностью изолированы, а нестандартное свойство - ничто иное как свойство js объекта, а не чистого dom. https://developer.chrome.com/extensions/content_sc... здесь предлагается использовать postMessage, но это сработает только в том случае, если и страница сайта и content_script "хотят" это делать, т.е. на сайте должен быть учтен механизм приема сообщений. Можно попробовать создать объект script через createElement/appendChild из content_script, который будет поддерживать этот механизм и отдавать нужные данные.
Если бы скрипт на странице устанавливал элементу DOM-атрибут, его бы можно было считать. А так — песочница:(
Лазейка через создание скрипта из content_script раньше работала, но могли прикрыть.