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

xatchikzzz

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

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


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

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

52605


как то реально сделать что б заблокировать эту часть кода ..???
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 352
Благодарностей
3 279
Баллы
113
адблок может заблокировать этот момент
Адблок не всегда блокирует и часто вырезает элементы (усиливая нагрузку).

В 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
 

xatchikzzz

Client
Регистрация
08.09.2010
Сообщения
566
Благодарностей
38
Баллы
28
Адлок не всегда блокирует и часто вырезает элементы (усиливая нагрузку).

В 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
я дико извиняюсь но не могу догнать как это ... можете пример показать реализации будьте так любезны пожалуйста?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 352
Благодарностей
3 279
Баллы
113
Удаление элемента через родительский:
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);
Можете протестить на главной форума.
 
  • Спасибо
Реакции: minfin, SHILY и udder

xatchikzzz

Client
Регистрация
08.09.2010
Сообщения
566
Благодарностей
38
Баллы
28
Удаление элемента через родительский:
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);
Можете протестить на главной форума.
если не трудно можешь показать как это в шаблоне выглядеть должно
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 683
Баллы
113

btr

Client
Регистрация
21.09.2015
Сообщения
71
Благодарностей
15
Баллы
8
Удаление элемента через родительский:
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()" ?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 352
Благодарностей
3 279
Баллы
113
Подскажите, как подобным же образом можно удалить подстроку например такую: onsubmit="return val()" ?
Получите атрибут onsubmit у элемента и очистите у него значение.
 
  • Спасибо
Реакции: ukrainec2014 и btr

minfin

Client
Регистрация
13.01.2020
Сообщения
144
Благодарностей
99
Баллы
28
Удаление элемента через родительский:
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);
Можете протестить на главной форума.
А как правильно прописывать, если нужно заблокировать сразу несколько элементов на странице?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 352
Благодарностей
3 279
Баллы
113
А как правильно прописывать, если нужно заблокировать сразу несколько элементов на странице?
Вынести в общий код. Прикрепил пример.
Но это не блокировка, а вырезание, что тоже делают блокировщики.
Можно до 7.6 понизить?
Понизил.
 

Вложения

Последнее редактирование:

dorohov

Client
Регистрация
02.10.2021
Сообщения
87
Благодарностей
8
Баллы
8
Вынести в общий код. Прикрепил пример.
Но это не блокировка, а вырезание, что тоже делают блокировщики.

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

<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)']");
 

Besedi

Client
Регистрация
04.03.2019
Сообщения
234
Благодарностей
40
Баллы
28
Вынести в общий код. Прикрепил пример.
Но это не блокировка, а вырезание, что тоже делают блокировщики.

Понизил.
А как не вырезать, а изменить innertext в этом элементе? А то если его удалить то последующие сообщения в этот контейнер не поступают без перезагрузки страницы
 

prostors

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

а в твоём, тестовом проекте выполняет без ошибок
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 352
Благодарностей
3 279
Баллы
113
попробовал это у себя, пишет
Компиляция кода Ошибка в действии "CS0103" "The name 'CommonCode' does not exist in the current context". [Строка: 4; Cтолбец: 1]

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

prostors

Client
Регистрация
16.12.2020
Сообщения
797
Благодарностей
27
Баллы
28

prostors

Client
Регистрация
16.12.2020
Сообщения
797
Благодарностей
27
Баллы
28

prostors

Client
Регистрация
16.12.2020
Сообщения
797
Благодарностей
27
Баллы
28
Последнее редактирование:

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 758
Благодарностей
2 392
Баллы
113

prostors

Client
Регистрация
16.12.2020
Сообщения
797
Благодарностей
27
Баллы
28
Как успехи?
Решили проблему?
Поделитесь решением?
ответ жду
решение - найти старый проект xmlz, через него открыть, скопировать туда весь код и сохранить

в этой теме, выше, есть проект xmlz
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 758
Благодарностей
2 392
Баллы
113
ответ жду
решение - найти старый проект xmlz, через него открыть, скопировать туда весь код и сохранить

в этой теме, выше, есть проект xmlz
Так я не понимаю - решена проблема или нет?
Другими словами - Вы хотите шаблон который выше перенести в новую версию Зенно и именно это не получается сделать?
Или уже все скопировали, все решили, и ещё что-то дополнительно ждёте?
 

prostors

Client
Регистрация
16.12.2020
Сообщения
797
Благодарностей
27
Баллы
28
Так я не понимаю - решена проблема или нет?
Другими словами - Вы хотите шаблон который выше перенести в новую версию Зенно и именно это не получается сделать?
Или уже все скопировали, все решили, и ещё что-то дополнительно ждёте?
проблема актуальна
проблема в том, что это должно работать в последней версии, без xmlz, копирования и пересохранения
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 758
Благодарностей
2 392
Баллы
113
проблема актуальна
проблема в том, что это должно работать в последней версии, без 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']");
Теперь проблема решена, или ещё в чём-то она заключается?
 
  • Спасибо
Реакции: Yuriy Zymlex и prostors

prostors

Client
Регистрация
16.12.2020
Сообщения
797
Благодарностей
27
Баллы
28

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