Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Можно ли реабилитировать скрипт Adblock Detector? (https://javascript.ru/forum/misc/79192-mozhno-li-reabilitirovat-skript-adblock-detector.html)

12345678 01.01.2020 21:38

Можно ли реабилитировать скрипт Adblock Detector?
 
Доброго времени суток.

Есть вот такой скрипт:

<script>
var ads = "no-adblock"
var msg = '<div class="noadblock">Вы используете расширение AdBlock или подобное. Вы можете добавить этот сайт в белый список, и тем самым внесете свой вклад в его развитие.</div>';
   
 onload=function(){
if (document.getElementsByClassName == undefined) {
 document.getElementsByClassName = function(className)
{
var hasClassName = new RegExp("(?:^|\s)" + className + "(?:$|\s)");
var allElements = document.getElementsByTagName("*");
var results = [];
var element;
for (var i = 0; (element = allElements[i]) != null; i++) {
var elementClass = element.className;
if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
 results.push(element);
}
return results;
}
}
   
 blocked = 0;
var ad_nodes = document.getElementsByClassName(ads);
for(i in ad_nodes){
if (ad_nodes[i].offsetHeight == 0){
 blocked = 1;
 ad_nodes[i].innerHTML = msg;  
}
}
}
</script>


Он был заблокирован вот такой командой
abort-on-property-write, document.getElementsByClassName

Что такое abort-on-property-write, можно прочесть здесь

Можно ли его реанимировать?

рони 01.01.2020 21:48

12345678,
так может выкинуть строки 6 - 20 и
var ad_nodes = document.querySelectorAll("."+ads);

12345678 02.01.2020 00:32

рони

Спасибо за ответ. Сделал и заблокировали уже вот этой командой
set-constant, Object.prototype.toString, undefined

Наверное это стало возможным как раз из-за выкинутых строк...

12345678 02.01.2020 21:09

А нет, поломали этим все скрипты на сайте.

И в этой связи вопрос: можно ли выводить сообщение для посетителей сайта (точнее, наверное, не скрывать, потому что скрипты то нормально не работают)?

Хочу объяснить причину того, почему теперь ничего на сайте не работает, причина которому использование uBlock

Aetae 03.01.2020 00:34

На самом деле если какой-то фильтр ломает сайт - можно спокойно написать об этом на сайте фильтра и всё поправят.
Но в вашем случае ваш сайт ломает ваш же скрипт, который пытается испортить работу блокировщика рекламы. А в таком случае - шли бы в к чёрту.

Ваша борьба с ветряными мельницами в принципе не имеет смыла.
Ваши клиенты - необразованные в ИТ люди, не знающие о блокировщиках рекламы и их вам должно быть достаточно. Не трогайте тех, кто не хочет видеть рекламу, потому что даже если ваш скрипт сработает - блокировщик такие люди не отключат, а просто уйдут с вашего сайта послав вам парочку проклятий.

12345678 04.01.2020 02:52

Aetae
Мой скрипт ничего не ломает. Он просто выводит сообщение о том, что реклама - единственный источник дохода. Всё больше людей хотят качественный контент безвозмездно, но это тупиковый путь. Сколько лет, дней и ночей понадобилось на развитие ресурса, а тут так поступают.

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


Часовой пояс GMT +3, время: 07:40.