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

xatchikzzz

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

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


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

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

52605


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

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 529
Благодарностей
3 375
Баллы
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
Сообщения
582
Благодарностей
41
Баллы
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 529
Благодарностей
3 375
Баллы
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);
Можете протестить на главной форума.
 

xatchikzzz

Client
Регистрация
08.09.2010
Сообщения
582
Благодарностей
41
Баллы
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 789
Благодарностей
5 721
Баллы
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 529
Благодарностей
3 375
Баллы
113
Подскажите, как подобным же образом можно удалить подстроку например такую: onsubmit="return val()" ?
Получите атрибут onsubmit у элемента и очистите у него значение.
 
  • Спасибо
Реакции: ukrainec2014 и btr

minfin

Client
Регистрация
13.01.2020
Сообщения
149
Благодарностей
102
Баллы
43
Удаление элемента через родительский:
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 529
Благодарностей
3 375
Баллы
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
Благодарностей
41
Баллы
28
Вынести в общий код. Прикрепил пример.
Но это не блокировка, а вырезание, что тоже делают блокировщики.

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

prostors

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

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

Yuriy Zymlex

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

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

prostors

Client
Регистрация
16.12.2020
Сообщения
1 045
Благодарностей
34
Баллы
48

prostors

Client
Регистрация
16.12.2020
Сообщения
1 045
Благодарностей
34
Баллы
48

prostors

Client
Регистрация
16.12.2020
Сообщения
1 045
Благодарностей
34
Баллы
48
Последнее редактирование:

BAZAg

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

prostors

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

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

BAZAg

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

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

prostors

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

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 794
Благодарностей
2 466
Баллы
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']");
Теперь проблема решена, или ещё в чём-то она заключается?
 

prostors

Client
Регистрация
16.12.2020
Сообщения
1 045
Благодарностей
34
Баллы
48

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