Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.07.2018, 23:23
Новичок на форуме
Отправить личное сообщение для loader77 Посмотреть профиль Найти все сообщения от loader77
 
Регистрация: 25.07.2018
Сообщений: 1

javascript для скрытия строк на странице содержащих фразу
многоуважаемые гуру если не сложно черкните пожалуйста javascript для хрома который на определенной странице скрывает все строки в которых есть определенный набор символов, например - "CPS."
просто боюсь у меня это получится ох как не скоро
Ответить с цитированием
  #2 (permalink)  
Старый 26.07.2018, 17:42
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

(function start(){
  var word = 'CPS.';
  
  if(document.readyState !== 'complete')
    return addEventListener('load', start);
  
  var elements = document.getElementsByTagName('*'), i = elements.length;
  while(i--){
    var nodes = elements[i].childNodes, j = nodes.length;
    while(j--) 
      if(nodes[j].nodeType === 3 && ~nodes[j].data.indexOf(word))
        elements[i].removeChild(nodes[j]);
  }
}())
По хардкору.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 26.07.2018, 19:25
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Aetae, я думаю для автора строка - не текстовый узел, а горизонтальная строка текста на экране.
Ответить с цитированием
  #4 (permalink)  
Старый 26.07.2018, 19:54
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Сообщение от Nexus
я думаю для автора строка - не текстовый узел, а горизонтальная строка текста на экране.
если так, то странная задача - поменяли ширину браузера, всё разъехалось..
Ответить с цитированием
  #5 (permalink)  
Старый 26.07.2018, 23:33
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

Nexus, это наркомания, но вот тебе цензор
(function start(){
  var word = 'CPS.';
  
  if(document.readyState !== 'complete')
    return addEventListener('load', start);
  
  var elements = document.getElementsByTagName('*'), 
      range = document.createRange(),
      i = elements.length;
  while(i--){
    var nodes = elements[i].childNodes, j = nodes.length;
    while(j--) 
      if(nodes[j].nodeType === 3){
        var position = 0;
        while((position = nodes[j].data.indexOf(word, position)) !== -1){
           range.setStart(nodes[j], position);
           range.setEnd(nodes[j], position = position + word.length);
           censor(range);
        }
      }
  }
  range.detach();
}());

function censor(elt) {
	var rects = elt.getClientRects();
	for (var i = 0; i != rects.length; i++) {
		var rect = rects[i];
		var tableRectDiv = document.createElement('div');
		tableRectDiv.style.position = 'absolute';
		tableRectDiv.style.background = '#000';
		var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
		var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
		tableRectDiv.style.margin = tableRectDiv.style.padding = '0';
		tableRectDiv.style.top = (rect.top + scrollTop) + 'px';
		tableRectDiv.style.left = (rect.left + scrollLeft) + 'px';
		tableRectDiv.style.width = (rect.width - 2) + 'px';
		tableRectDiv.style.height = (rect.height - 2) + 'px';
		document.body.appendChild(tableRectDiv);
	}
}
Можно попробовать прям на этой странице.)

Сейчас закрывает только конкретное слово, но легко исправить стиль, чтоб закрывал всю строку. Ну и удалять куски текста с помощью range тоже не сложно, если нужно.
С изменением окна браузеа - да, придётся перерисовывать.
__________________
29375, 35

Последний раз редактировалось Aetae, 26.07.2018 в 23:38.
Ответить с цитированием
  #6 (permalink)  
Старый 27.07.2018, 09:12
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Сообщение от Aetae
но вот тебе цензор
Да он мне, как бы, нафиг не нужен
Ответить с цитированием
  #7 (permalink)  
Старый 27.07.2018, 09:48
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

Сообщение от Nexus Посмотреть сообщение
Да он мне, как бы, нафиг не нужен
Тсс, он никому нафиг не нужен.)
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 27.07.2018, 12:01
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

мда... век живи век учись
у Ренджа оказывается есть getClientRects
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Javascript gui для java кода proninyaroslav Общие вопросы Javascript 9 20.07.2015 08:37
Поиск слова на странице (javascript) Корделия Элементы интерфейса 9 15.08.2013 17:44
поиск классов внутри тега yozuul jQuery 24 14.06.2013 22:00
нужна программа для этого. Чем писать? javascript или php? spam-server Серверные языки и технологии 3 27.08.2009 00:52
Загрузить title для ссылок на странице MarikVal jQuery 0 27.07.2009 20:38