Удалить элемент со страницы

  • Автор темы Автор темы xatchikzzz
  • Дата начала Дата начала

xatchikzzz

Client
Регистрация
08.09.2010
Сообщения
588
Реакции
41
Баллы
28
Народ кто знает как можно запретить загрузку элемента на странице

когда заходишь на пх с русского айпи то выдает такое
52603


все это идет потому что в коде есть элемент

адблок может заблокировать этот момент , а как быть с Ру прокси

52605


как то реально сделать что б заблокировать эту часть кода ..???
 
адблок может заблокировать этот момент
Адблок не всегда блокирует и часто вырезает элементы (усиливая нагрузку).

В C# можно получить целевой элемент, запросить у него родительский и используя его - удалить целевой.
https://help.zennolab.com/en/v5/zennoposter/5.40.0.0/webframe.html#topic181.html
https://help.zennolab.com/en/v5/zennoposter/5.40.0.0/webframe.html#topic153.html
 
Адлок не всегда блокирует и часто вырезает элементы (усиливая нагрузку).

В C# можно получить целевой элемент, запросить у него родительский и используя его - удалить целевой.
https://help.zennolab.com/en/v5/zennoposter/5.40.0.0/webframe.html#topic181.html
https://help.zennolab.com/en/v5/zennoposter/5.40.0.0/webframe.html#topic153.html

я дико извиняюсь но не могу догнать как это ... можете пример показать реализации будьте так любезны пожалуйста?
 
Удаление элемента через родительский:
Развернуть Свернуть Копировать
Tab tab = instance.ActiveTab;

HtmlElement he = tab.FindElementByXPath("//div[@class = 'lSSlideOuter noticeScrollContainer']", 0); // тут свой xPath
if(he.IsVoid || he.IsNull) throw new Exception("he не найден.");

HtmlElement heParent = he.ParentElement;
if(heParent.IsVoid || heParent.IsNull) throw new Exception("ParentElement не найден");
heParent.RemoveChild(he);
Можете протестить на главной форума.
 
Удаление элемента через родительский:
Развернуть Свернуть Копировать
Tab tab = instance.ActiveTab;

HtmlElement he = tab.FindElementByXPath("//div[@class = 'lSSlideOuter noticeScrollContainer']", 0); // тут свой xPath
if(he.IsVoid || he.IsNull) throw new Exception("he не найден.");

HtmlElement heParent = he.ParentElement;
if(heParent.IsVoid || heParent.IsNull) throw new Exception("ParentElement не найден");
heParent.RemoveChild(he);
Можете протестить на главной форума.

если не трудно можешь показать как это в шаблоне выглядеть должно
 
Удаление элемента через родительский:
Развернуть Свернуть Копировать
Tab tab = instance.ActiveTab;

HtmlElement he = tab.FindElementByXPath("//div[@class = 'lSSlideOuter noticeScrollContainer']", 0); // тут свой xPath
if(he.IsVoid || he.IsNull) throw new Exception("he не найден.");

HtmlElement heParent = he.ParentElement;
if(heParent.IsVoid || heParent.IsNull) throw new Exception("ParentElement не найден");
heParent.RemoveChild(he);
Можете протестить на главной форума.
Подскажите, как подобным же образом можно удалить подстроку например такую: onsubmit="return val()" ?
 
Подскажите, как подобным же образом можно удалить подстроку например такую: onsubmit="return val()" ?
Получите атрибут onsubmit у элемента и очистите у него значение.
 
  • Оценить
Реакции: ukrainec2014 и btr
Удаление элемента через родительский:
Развернуть Свернуть Копировать
Tab tab = instance.ActiveTab;

HtmlElement he = tab.FindElementByXPath("//div[@class = 'lSSlideOuter noticeScrollContainer']", 0); // тут свой xPath
if(he.IsVoid || he.IsNull) throw new Exception("he не найден.");

HtmlElement heParent = he.ParentElement;
if(heParent.IsVoid || heParent.IsNull) throw new Exception("ParentElement не найден");
heParent.RemoveChild(he);
Можете протестить на главной форума.
А как правильно прописывать, если нужно заблокировать сразу несколько элементов на странице?
 
А как правильно прописывать, если нужно заблокировать сразу несколько элементов на странице?
Вынести в общий код. Прикрепил пример.
Но это не блокировка, а вырезание, что тоже делают блокировщики.
Можно до 7.6 понизить?
Понизил.
 

Вложения

Последнее редактирование:
Вынести в общий код. Прикрепил пример.
Но это не блокировка, а вырезание, что тоже делают блокировщики.

Понизил.
Можете подсказать, какой будет код для моего случая, блок без класса, только стили

<div style="background-color: rgb(255, 255, 255); border: 1px solid rgb(204, 204, 204); ****************</div>

Вот так не работает:

Tab tab = instance.ActiveTab;

int wait = 2000;

Thread.Sleep(wait);
CommonCode.DeleteHtmlElement(tab, "//div[@style = 'border: 1px solid rgb(204, 204, 204)']");
 
Вынести в общий код. Прикрепил пример.
Но это не блокировка, а вырезание, что тоже делают блокировщики.

Понизил.
А как не вырезать, а изменить innertext в этом элементе? А то если его удалить то последующие сообщения в этот контейнер не поступают без перезагрузки страницы
 
Вынести в общий код. Прикрепил пример.
Но это не блокировка, а вырезание, что тоже делают блокировщики.
попробовал это у себя, пишет
Компиляция кода Ошибка в действии "CS0103" "The name 'CommonCode' does not exist in the current context". [Строка: 4; Cтолбец: 1]

а в твоём, тестовом проекте выполняет без ошибок
 
попробовал это у себя, пишет
Компиляция кода Ошибка в действии "CS0103" "The name 'CommonCode' does not exist in the current context". [Строка: 4; Cтолбец: 1]

а в твоём, тестовом проекте выполняет без ошибок
Потому что там общий код и его тоже надо переносить.
 
  • Оценить
Реакции: prostors
Последнее редактирование:
Как успехи?
Решили проблему?
Поделитесь решением?
ответ жду
решение - найти старый проект xmlz, через него открыть, скопировать туда весь код и сохранить

в этой теме, выше, есть проект xmlz
 
ответ жду
решение - найти старый проект xmlz, через него открыть, скопировать туда весь код и сохранить

в этой теме, выше, есть проект xmlz
Так я не понимаю - решена проблема или нет?
Другими словами - Вы хотите шаблон который выше перенести в новую версию Зенно и именно это не получается сделать?
Или уже все скопировали, все решили, и ещё что-то дополнительно ждёте?
 
Так я не понимаю - решена проблема или нет?
Другими словами - Вы хотите шаблон который выше перенести в новую версию Зенно и именно это не получается сделать?
Или уже все скопировали, все решили, и ещё что-то дополнительно ждёте?
проблема актуальна
проблема в том, что это должно работать в последней версии, без xmlz, копирования и пересохранения
 
проблема актуальна
проблема в том, что это должно работать в последней версии, без xmlz, копирования и пересохранения
Ну так просто перепишите его как-то так например и будет работать:
C#:
Развернуть Свернуть Копировать
Func<Tab, string, string> DeleteHtmlElement = (active_tab,  path) =>{
    var he = active_tab.FindElementByXPath(path, 0);
    if(he.IsVoid || he.IsNull) return "he не найден.";
    
    var heParent = he.ParentElement;
    if(heParent.IsVoid || heParent.IsNull) return "ParentElement не найден";
    heParent.RemoveChild(he);
    return "Ok";
};

Tab tab = instance.ActiveTab;
int wait = 2000;

Thread.Sleep(wait);
DeleteHtmlElement(tab, "//div[@class = 'notice-content']");
Thread.Sleep(wait);
DeleteHtmlElement(tab, "//div[contains(@class, 'brmsTabContent_0')]");
Thread.Sleep(wait);
DeleteHtmlElement(tab, "//div[@class = 'uix_nodeList block']");

Теперь проблема решена, или ещё в чём-то она заключается?
 
  • Оценить
Реакции: AlexMill, ZX и prostors

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)