Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.07.2014, 16:59
Аватар для wlad2
Кандидат Javascript-наук
Отправить личное сообщение для wlad2 Посмотреть профиль Найти все сообщения от wlad2
 
Регистрация: 16.10.2010
Сообщений: 117

как реализовать в браузере 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> Похудение с&nbsp;помощью 25&nbsp;. БЕЗ кофе&nbsp;и... </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 или Хрома которые подобное помогут реализовать
может у кого есть готовое решение для таких махинаций, помогите..
Ответить с цитированием
  #2 (permalink)  
Старый 17.07.2014, 14:44
Профессор
Посмотреть профиль Найти все сообщения от newobject
 
Регистрация: 10.07.2014
Сообщений: 145

Если без учета вложенных элементов, это легко, вроде

divs=document.getElementsByTagName("div")
for(i in divs){if(/coffee/.test(divs[i].innerHTML)) divs[i].style.display="none"}


А так, регекспами решать наверное надо, я в них не силен.
Ответить с цитированием
  #3 (permalink)  
Старый 17.07.2014, 15:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

newobject, вот такая кнопа есть


и это принципиально перебор делать через in а не обычным for?
Ответить с цитированием
  #4 (permalink)  
Старый 17.07.2014, 15:55
Профессор
Посмотреть профиль Найти все сообщения от newobject
 
Регистрация: 10.07.2014
Сообщений: 145

Сообщение от рони
вот такая кнопа есть
Какая разница? Это мельтешение только мешает. Не люблю свистопеределки.
Сообщение от рони
и это принципиально перебор делать через in а не обычным for?
Просто ясней. Если ему скорость нужна, сам перепишет. К тому же for in - это JS-way, по моему.
Ответить с цитированием
  #5 (permalink)  
Старый 17.07.2014, 16:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

newobject,
то есть вам пофигу как выглядит сам код и рабочий ли он, главное подкинуть идею решения - ок
Ответить с цитированием
  #6 (permalink)  
Старый 18.07.2014, 01:25
Аватар для wlad2
Кандидат Javascript-наук
Отправить личное сообщение для wlad2 Посмотреть профиль Найти все сообщения от wlad2
 
Регистрация: 16.10.2010
Сообщений: 117

Сообщение от newobject Посмотреть сообщение
Если без учета вложенных элементов, это легко, вроде

divs=document.getElementsByTagName("div")
for(i in divs){if(/coffee/.test(divs[i].innerHTML)) divs[i].style.display="none"}


А так, регекспами решать наверное надо, я в них не силен.
большое спасибо за решение,
только как подключить сей JS к примеру в FF

есть страница с блоками она уже загружена в браузере, как к ней применить сей JS?
Ответить с цитированием
  #7 (permalink)  
Старый 18.07.2014, 02:52
Профессор
Посмотреть профиль Найти все сообщения от newobject
 
Регистрация: 10.07.2014
Сообщений: 145

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, 18.07.2014 в 18:56.
Ответить с цитированием
  #8 (permalink)  
Старый 18.07.2014, 03:07
Профессор
Посмотреть профиль Найти все сообщения от newobject
 
Регистрация: 10.07.2014
Сообщений: 145

Сообщение от wlad2
есть страница с блоками она уже загружена в браузере, как к ней применить сей JS?
Или я вас неправильно понял. Вы хотите скрывать блоки с рекламой, сделать что-то вроде фильтра? Тогда это решение Вам не подойдет. Во-первых, в том же фф там надо писать плагин или расширение, ЕМНИП, просто так произвольный js, он не даст выполнять. Во вторых, на страницах разных может быть разные структуры, разные блоки, не только дивы, и многократная вложенность, динамическая подгрузка и прочее. Там очень сложный код нужен, парой строк там не обойдешься.
Ответить с цитированием
  #9 (permalink)  
Старый 18.07.2014, 12:32
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

newobject, f12 и выполняй себе любой js.
Для подключения скрипта на постоянной основе есть greasemonkey.
А для фильтрации рекламы ничего лучше adblock пока не придумали.(с плагином element highlighter если ручками сложно нужные элементы блочить)
__________________
29375, 35

Последний раз редактировалось Aetae, 18.07.2014 в 12:34.
Ответить с цитированием
  #10 (permalink)  
Старый 18.07.2014, 16:52
Аватар для wlad2
Кандидат Javascript-наук
Отправить личное сообщение для wlad2 Посмотреть профиль Найти все сообщения от wlad2
 
Регистрация: 16.10.2010
Сообщений: 117

пишет ошибку == Метод getPreventDefault() является устаревшим. Для его замены используйте метод defaultPrevented

Снимок экрана 2014-07-18 в 16.51.00.jpg
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Форма и 3 кнопки, Как реализовать переход? jsuse Элементы интерфейса 1 10.04.2010 21:52
как подгрузить стиль для определённой ссылки? Negative Элементы интерфейса 1 11.11.2009 16:45
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 23:30
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53