как реализовать в браузере display:none по ключевым словам для блоков
есть DIV блоки, их на странице много,
нужно скрывать те в которых встречаются ненужные слова для примера слово "КОФЕ" такой блок должен display:none получать <div class="teaser"> <a href="#" class="viewinfo" style="color:#000;text-decoration: none;"> <p></p> <img class="teimage" src="/images/gigamega.ru/62489_200.jpg"> <div> Похудение с помощью 25 . БЕЗ кофе и... </div> <p style="height:20px;margin:0;">gigamega.ru</p> <input type="hidden" value="" rel="nofollow"> <input type="hidden" value="24.02.2014"> <input type="hidden" value="26.02.2014"> <input type="hidden" value="601"> <input type="hidden" value=""> <input type="hidden" value="Россия, Казахстан"> <input type="hidden" value="9.37 Kb"> <input type="hidden" value="200x200"> <input type="hidden" value="2"> <input type="hidden" value="000193eefdfb6fdbf701e17cf"> <input type="hidden" value="2260869"> <!-- <input type="hidden" value="" /> --> </a> <span>26.02.2014 <a href="#" class="viewinfo"><img src="/images/eye.png"></a> (601) <input class="zipcheck" id="zip_2260869" type="checkbox"></span> </div> есть ли плагины для FF или Хрома которые подобное помогут реализовать может у кого есть готовое решение для таких махинаций, помогите.. |
Если без учета вложенных элементов, это легко, вроде
divs=document.getElementsByTagName("div") for(i in divs){if(/coffee/.test(divs[i].innerHTML)) divs[i].style.display="none"} А так, регекспами решать наверное надо, я в них не силен. |
newobject, вот такая кнопа есть
![]() и это принципиально перебор делать через in а не обычным for? |
Цитата:
Цитата:
|
newobject,
то есть вам пофигу как выглядит сам код и рабочий ли он, главное подкинуть идею решения - ок:( |
Цитата:
только как подключить сей JS к примеру в FF есть страница с блоками она уже загружена в браузере, как к ней применить сей JS? |
wlad2,
Я не совсем понял какие именно блоки надо скрывать. Если внешний, полностью, и если все скрываемые блоки имеют структуру <body> <div></div> <div></div> <div></div> </body> то это решение подойдет. Если же надо скрывать блоки произвольного уровня вложенности <body> <div></div> <div><div></div</div> <div><div><div></div</div></div> </body> -- то нет. А подключайте обычно -- внешним скриптом, или в конце тега body в <script></script>, не важно. как только подключите все будет работать. например <body> <div>foo кофе bar coffee baz</div> <div>foo bar ягоды salad бараны baz</div> <div>Видимый тег</div> <div>foo bar сахар salad baz</div> <script> onload=function(){ var divs=document.getElementsByTagName("div") for(var i in divs){ if(divs.hasOwnProperty(i)){ if(/кофе|ягоды|сахар/.test(divs[i].innerHTML)) divs[i].style.display="none"} }} </script> </body> |
Цитата:
|
newobject, f12 и выполняй себе любой js.
Для подключения скрипта на постоянной основе есть greasemonkey. А для фильтрации рекламы ничего лучше adblock пока не придумали.(с плагином element highlighter если ручками сложно нужные элементы блочить) |
Вложений: 1
пишет ошибку == Метод getPreventDefault() является устаревшим. Для его замены используйте метод defaultPrevented
Вложение 2283 |
wlad2,
Эта ошибка по-моему, данного кода не касается. Это где-то на странице у вас ошибка. |
Цитата:
просто сервис выдает тизеры, а я хотел, хоть както убить те блоки в которые есть не нужные мне ключевые слова пока понял как запускать скрипты в FF по поводу скрипта if(/Сода/.test(divs[i].innerHTML как перечислить правильно ключи if(/Сода/КОФЕ/годжи/.test(divs[i].innerHTML ? $(function () { ($('.viewinfo').phrases = ['кофе', 'сода', 'ягоды']{$('.viewinfo').style.display="none"} } подскажите как всетаки скрывать ДИВЫ в которых есть ключи типа 'кофе', 'сода', 'ягоды' |
Цитата:
/вода|снег/i i на конце - это если надо игнорировать разницу между большими и маленькими буквами. PS Если возникнут проблемы, регекспы неправильно будут себя вести, проветьте, на всякий случай, соответствие кодировок документа, декларации в теге head и скрипта. С русскими символами бывают проблемы тоже. |
Цитата:
<html> <head> </head> <body> <div>foo кофе bar coffee baz</div> <div>foo bar ягоды salad бараны baz</div> <div>Видимый тег</div> <div>foo bar сахар salad baz</div> <script> onload=function(){ var divs=document.getElementsByTagName("div") for(var i in divs){ if(divs.hasOwnProperty(i)){ if(/кофе|ягоды|сахар/.test(divs[i].innerHTML)) divs[i].style.display="none"} }} </script> </body> </html> Тут че-то не запускается, run не буду ставить, но в браузере у меня работает. ЗЫ Упс! В ФФ ругань на __proto__=null почему то. Убрал, заработало. Надо по хорошему, тогда добавить hasOwnProperty. Ща перепишу. UPD исправил |
Ты гонишь. Нету никакой ругани.
|
Часовой пояс GMT +3, время: 21:43. |