Не видит элемент
Здравствуйте.
Пытаюсь написать юзерскрипт для одной браузерки. Когда в консоли прописываю получить элемент по классу мне возвращает undefined, но если я чрез просмотр кода элемента найду его в коде страницы в ручную и пропишу ту же самую команду то элемент находится без проблем. В чём может быть загвоздка? В каком направлении хотя бы гуглить? |
Всё просто: элемент появляется на странице уже после того как отработал скрипт.
Простой вариант - подождать появления: function main(element){ //код скрипта делающий что-то с элементом } (function wait(){ var element = document.querySelector('#id'); if(element) //если элемент найден return main(element); //вызываем функцию main setTimeout(wait, 100); //иначе ждём ещё 100ms }()); Сложный - вмешаться в работу функции приводящей к появлению этого элемента. |
Aetae
Не думаю что из-за этого. Элемент уже появился и я в консоли прописал вручную после появления элемента но он не видит. Но когда я нажал ПКМ и просмотр кода элемента и сам так сказать вручную до нужного элемента дошёл он стал видеть. Rise Я не в коде скрипт выполнял, я в коде нужный элемент в ручную находил. Немного косноязычно выразился. |
Вот примерно так
![]() |
Цитата:
---- элемент точно не в ифрейме? |
Цитата:
|
Alexandroppolus
В 1 картинке до просмотра кода в ручную и после. и после просмотри находит таки 17 элемент хотя ни каких действия на экране я не совершал. До просмотра кода даже 0 элемент не находит. элемент точно не в ифрейме? Сейчас проверил, да в iframe. Что такое не знаю, но сейчас буду гуглить, может в нём дело. |
Цитата:
посмотри какой url у фрейма, натрави юзерскрипт на этот url, и он запустится внутри фрейма, будет там работать. либо, если страница и фрейм с одного домена, можно оставить юзерскрипт как есть, тогда надо будет отыскать в документе фрейм, смотреть его contentWindow.document и в нем искать. Но тут надо дождаться загрузки самого фрейма, и ещё появления в нем элемента, этот вариант мне видится более громоздким |
Часовой пояс GMT +3, время: 00:51. |