Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Как скрывать на открытой вебстранице конкретный элемент содержащий строку?

Ответить
Настройки темы
[решено] Как скрывать на открытой вебстранице конкретный элемент содержащий строку?

Ветеран


Сообщения: 1011
Благодарности: 47

Профиль | Отправить PM | Цитировать


Надо мне както скрывать на открытой вебстранице конкретный элемент содержащий конкретную строку.

Например, на странице форума "стопка" элементов <TABLE>....</TABLE> (не вложенные а последовательные), один из которых содержит строку QWERT
как перебрать элементы, проверить в каком встречается заданная строка и скрыть элемент?

Эдблок и эдгард вроде такую опцию не предлагают.

Если писать скрипт, то первый вопрос, как вообще прицепить скрипт к браузеру, чтобы он применялся при открытии вэбстраницы и изменял её?

Отправлено: 13:42, 08-08-2014

 

Аватара для Habetdin


Автор проектов


Сообщения: 3652
Благодарности: 1498

Профиль | Сайт | Отправить PM | Цитировать


Цитата Yewgeniy:
Если писать скрипт, то первый вопрос, как вообще прицепить скрипт к браузеру, чтобы он применялся при открытии вэбстраницы и изменял её? »
UserJS - во многих браузерах если и нет поддержки "из коробки", есть расширения, реализующие данный функционал: например Greasemonkey для Firefox или Tampermonkey для Chrome. Кстати, для отладки UserJS на Presto-версии Opera удобно использовать Violent Monkey.
Цитата Yewgeniy:
"стопка" элементов <TABLE>....</TABLE>, один из которых содержит строку QWERT »
Нужно найти и скрыть таблицу (table), в одной из ячеек которой (td) есть строка QWERT?

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:45, 08-08-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1011
Благодарности: 47

Профиль | Отправить PM | Цитировать


Цитата:
Нужно найти и скрыть таблицу (table), в одной из ячеек которой (td) есть строка QWERT?
Да.

Отправлено: 13:55, 08-08-2014 | #3


Аватара для Habetdin


Автор проектов


Сообщения: 3652
Благодарности: 1498

Профиль | Сайт | Отправить PM | Цитировать


Yewgeniy, хотя... зачем перебирать td, если таблицы не вложенные? Вот, накатал простой пример:
Код: Выделить весь код
// ==UserScript==
// @name		Test UserJS
// @description		Hides some tables
// @version		0.1
// @author		Habetdin
// @homepage		http://forum.oszone.net/
// @include		http://forum.oszone.net/*
// @run-at		document-end
// ==/UserScript==

window.addEventListener('load', function() {
	var tables = document.getElementsByTagName("table");
	for(var i = 0, n = tables.length; i < n; i++)
		if(tables[i].innerHTML.indexOf("блядеканр") != -1)
		{
			tables[i].style.setProperty("display", "none", "important");
			break;
		}
}, false);
Скрывает последний пост с канделябром (#396) здесь (либо - этот пост, ибо то же слово в исходнике ).
Если нужно скрыть несколько таблиц - убрать из цикла break.

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Последний раз редактировалось Habetdin, 08-08-2014 в 15:23. Причина: Chrome fix...

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:23, 08-08-2014 | #4


Ветеран


Сообщения: 1011
Благодарности: 47

Профиль | Отправить PM | Цитировать


Цитата:
Скрывает последний пост с канделябром (#396) здесь (либо - этот пост, ибо то же слово в исходнике )
Пробую в хроме. Не скрывает.


показывает 1 работающий скрипт, но эффекта ноль

Последний раз редактировалось Yewgeniy, 08-08-2014 в 15:06.


Отправлено: 14:54, 08-08-2014 | #5


Аватара для Habetdin


Автор проектов


Сообщения: 3652
Благодарности: 1498

Профиль | Сайт | Отправить PM | Цитировать


Цитата Yewgeniy:
в хроме. Не скрывает »
Однако... Хром отклоняет style.display = "*** !important", принимая только значения без "!important".
Изменил метод скрытия, см. код в предыдущем посте.

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Последний раз редактировалось Habetdin, 08-08-2014 в 15:30.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:13, 08-08-2014 | #6


Ветеран


Сообщения: 1011
Благодарности: 47

Профиль | Отправить PM | Цитировать


Работает!

и для моей задачи тоже работает


Спасибо!


А как тоже самое сделать для нескольких строк?

Последний раз редактировалось Yewgeniy, 08-08-2014 в 15:34.


Отправлено: 15:24, 08-08-2014 | #7


Аватара для Habetdin


Автор проектов


Сообщения: 3652
Благодарности: 1498

Профиль | Сайт | Отправить PM | Цитировать


Цитата Yewgeniy:
для нескольких строк? »
Код: Выделить весь код
if(tables[i].innerHTML.indexOf("строка 1") != -1 || tables[i].innerHTML.indexOf("строка 2") != -1)
Ну и убрать break, как я писал выше.

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:24, 08-08-2014 | #8


Ветеран


Сообщения: 1011
Благодарности: 47

Профиль | Отправить PM | Цитировать


Спасибо!

а нельзя ли в tables[i].innerHTML.indexOf(????????????) вставить несколько значений?

Отправлено: 16:27, 08-08-2014 | #9


Аватара для Habetdin


Автор проектов


Сообщения: 3652
Благодарности: 1498

Профиль | Сайт | Отправить PM | Цитировать


Yewgeniy, можно использовать регулярные выражения:
Код: Выделить весь код
// ==UserScript==
// @name		Test UserJS
// @description		Hides some tables
// @version		0.2
// @author		Habetdin
// @homepage		http://forum.oszone.net/
// @include		http://forum.oszone.net/*
// @run-at		document-end
// ==/UserScript==

window.addEventListener('load', function() {
	var tables = document.getElementsByTagName("table"),
		regexp = /(мадамсрет|рвотник)/i;
	for(var i = 0, n = tables.length; i < n; i++)
		if(regexp.test(tables[i].innerHTML))
			tables[i].style.setProperty("display", "none", "important");
}, false);
Тогда здесь пропадет уже три поста, #393-395. Но с регулярными выражениями осторожнее, тестируйте. А если не знаете - уж лучше длинный, но надежный вариант без них

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:49, 08-08-2014 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Как скрывать на открытой вебстранице конкретный элемент содержащий строку?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как кликнуть "Мне нравится" на открытой странице вконтакте? seallaes@vk AutoIt 2 05-10-2012 22:26
2010 - [решено] Как в VBA добавить на Toolbox элемент управления Календарь или его замену okshef Microsoft Office (Word, Excel, Outlook и т.д.) 4 11-11-2010 07:46
как скрывать мас адрес asas Хочу все знать 3 18-04-2010 14:59
[решено] как сделать невидимым элемент на странице dima1981 Вебмастеру 3 17-05-2009 23:42
Интерфейс - Как всегда скрывать иконки в трее? Rhamzes Microsoft Windows 2000/XP 4 10-11-2007 19:21




 
Переход