Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.01.2020, 21:38
Кандидат Javascript-наук
Отправить личное сообщение для 12345678 Посмотреть профиль Найти все сообщения от 12345678
 
Регистрация: 03.09.2012
Сообщений: 109

Можно ли реабилитировать скрипт 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, можно прочесть здесь

Можно ли его реанимировать?
Ответить с цитированием
  #2 (permalink)  
Старый 01.01.2020, 21:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

12345678,
так может выкинуть строки 6 - 20 и
var ad_nodes = document.querySelectorAll("."+ads);
Ответить с цитированием
  #3 (permalink)  
Старый 02.01.2020, 00:32
Кандидат Javascript-наук
Отправить личное сообщение для 12345678 Посмотреть профиль Найти все сообщения от 12345678
 
Регистрация: 03.09.2012
Сообщений: 109

рони

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

Наверное это стало возможным как раз из-за выкинутых строк...
Ответить с цитированием
  #4 (permalink)  
Старый 02.01.2020, 21:09
Кандидат Javascript-наук
Отправить личное сообщение для 12345678 Посмотреть профиль Найти все сообщения от 12345678
 
Регистрация: 03.09.2012
Сообщений: 109

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

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

Хочу объяснить причину того, почему теперь ничего на сайте не работает, причина которому использование uBlock
Ответить с цитированием
  #5 (permalink)  
Старый 03.01.2020, 00:34
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,505

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

Ваша борьба с ветряными мельницами в принципе не имеет смыла.
Ваши клиенты - необразованные в ИТ люди, не знающие о блокировщиках рекламы и их вам должно быть достаточно. Не трогайте тех, кто не хочет видеть рекламу, потому что даже если ваш скрипт сработает - блокировщик такие люди не отключат, а просто уйдут с вашего сайта послав вам парочку проклятий.
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 04.01.2020, 02:52
Кандидат Javascript-наук
Отправить личное сообщение для 12345678 Посмотреть профиль Найти все сообщения от 12345678
 
Регистрация: 03.09.2012
Сообщений: 109

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

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

Последний раз редактировалось 12345678, 04.01.2020 в 02:55.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть скрипт фильтра select, можно подправить Slastkiwi Элементы интерфейса 1 17.12.2011 11:01
Можно ли как-то сократить скрипт случайной цитаты (см. внутри)? Hyuga_Nia Общие вопросы Javascript 4 20.01.2011 22:00
Как можно сократить (и можно ли) этот скрипт (см. внутри)? Hyuga_Nia Общие вопросы Javascript 28 20.01.2011 21:48
Скрипт: можно ли обнаружить? Icy Общие вопросы Javascript 3 14.07.2010 15:25
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 23:30