JS - Расширения Google Chrome. Проблема с загрузкой дома
Есть проблема с написанием расширения.
Через расширения хром я внедряю свой js файл в ДОМ, но на определенном сайте подгружаются фреймы и когда я хочу навешать события на определенный элемент, но он еще не загрузился в фрейме. Каким образом я могу проверить загрузку всего дом элемента через расширения хром?
DOMContentLoaded - не работает.
load - Так-же
В файле manifest.json
"run_at": "document_end" - так-же не работает.
Я решил вопрос через setTimeout на 4 сек но в большинстве случаях он так-же не работает, так как дом не подгрузил те самые элементы.
Надеюсь правильно задал вопрос.
Ответы (1 шт):
Можешь использовать такую штуку:
const keepFrameHot=async()=>{
// check, if exist
if($('#myInjectedCode').length > 0)return false;
// inject here
// for example
$('body').append(`<style id="myInjectedCode">
body{
background:#232323!important;
}
</style>`);
// or another example
$('body').append(`<script id="myInjectedCode">
(()=>{alert('Hello there');})();
</script>`);
};
keepFrameHot();
setInterval(keepFrameHot, 1000);
Будь внимателен $(селектор-ид).length всегда 1 возвращает