Появление элемента в DOM
Здравствуйте уважаемые есть такая проблема
начал только изучать js решил попрактиковаться на расширении для google chrome работает как часы но есть одна проблема что отработка идет поздно судя по всему это происходит из за того что изначально пытаюсь удалить элемент дерева которого еще не существует вот и сам вопрос как мне проверить что элемент вставляется в DOM и либо ему не дать вставиться либо удалить как он только появился вот код удаления: Код:
думаю эту проблему можно решить через Код:
|
aktep, в современных браузерах есть метод querySelectorAll, http://www.codeisart.ru/w3c-css-sele...orall-methods/ который ищет и по классу и по ID и по атрибутам
Вот кроссбраузерная библиотечка нахождения селекторов http://javascript.ru/forum/project/2...shhikhsya.html |
Цитата:
а с обработчиком вот я что то встал не могу понять до конца как я понимаю нужно задать функцию дать ей на вход добавляемый сейчас объект в DOM сравнить с моим и если они совпадают тут же удалить его... подскажите пожалуйста хоть в правильном направлении иду? и если это возможно пример привидите как то легче получается по примерам... Deff большое спасибо за очень полезную информацию теперь буду знать что есть такой селектор. |
все таки не подходит querySelectorAll
у меня задача стоит такая что легче находить объект через Код:
Код:
как организовать подобное но если мы незнаем Id не могу понять разумеется тут что то с insertedNode.id тк я ищу не id мне его надо поменять на .... что? как отследить появление объекта ElementByTagName('table')[0].rows[0].cells[0] не пойму ... помогите пожалуйста как определить какой объект таблицы и какой сейчас вставлен не взирая на tr или td это просто допустим я хочу найти объект пятой таблицы 1 tr 2td тогда вызвать его легко Код:
|
не пойму в правильном направлении иду я или нет...
document.addEventListener('DOMNodeInserted', sector); function sector(e){ var insertedNodeName = e.target.nodeName; var insertedNode = e.target; console.log(insertedNodeName); console.log(insertedNode); if (insertedNodeName == 'TABLE'){ //mycode } }; возвращается таблица но она еще пустая ... как я понимаю терь нуно кидать обработчик на этот объект и уже в нем смотреть когда вставятся tr и как только нужный вставится удалить его но как это организовать и вооще правильный ли это метод или есть что полегче? |
aktep,
Задача нечетко обрисована, и мысли спутаны, как из-за стола с HГ Что собственно хотите ? определить момент вставки и селектор вставляемого элемента ? - воткните пиксельную прозрачку внутрь вставляемого элемента, по onload прозрачки проанализируйте её родителя <img onload="TstInsertParent(this)" src="http://forum.mybb.ru/i/blank.gif"/> |
Ой сори я думал понятно поставил проблем
проблема заключается в следующем пишу расширение для google chrome для сайта http://video.sibnet.ru/ удаляю верхнюю и боковую рекламу (вроде тривиальная задачка хм) тк часто тут смотрю видео и вот что получаю без расширения во время обработки получается вот такая крикозябля в виде белой полоски сверху на несколько секунд потом же все таки функция находит элемент таблицы и удаляет его вот такая вот проблема... через css реклама прибита дык вот в чем там дело все дело в том что рекламный div находится внутри таблицы <td style="height:66px;"> тобишь пока я не удалю этот td белая полоска никуда не денется я написал дополнительную функцию она удаляет tr содержащий как раз этот блок но ... блок удаляется через 3-10 секунд в общем он удаляется после того как загрузится весь документ выглядит это некрасиво + смещения документа после удаления а тк он находится в самом верху то это не очень удобно надеюсь описал доступно ... прошу помощи |
Deff, проблема не в том что я его отловить не могу отловить его в DOM я могу спокойно (но не ById ByClassName ибо ему ни класс ни id не присвоены) проблема в том что я не могу его во время удалить чтобы он вообще не появлялся... задержка перед удалением ощутимая
|
aktep,
Эээ - а дай ссыль на сайт с этой рекламой, (не удаленной) и ткни стрелкой на скриншоте этого сайта, - где она, может есть проще путь ? |
Deff, уже давал да и на скриншотах ссыль видна
Цитата:
|
Часовой пояс GMT +3, время: 08:11. |