SerjoPepper / kick_sovetnik

KickSovetnik поможет вам отключить Яндекс-Советник на вашем интернет магазине.
77 stars 36 forks source link

Перестал работать скрипт #3

Closed A-Lifanov closed 8 years ago

A-Lifanov commented 8 years ago

Добрый день. Скрипт блокировки Я.Советника перестал работать.

SerjoPepper commented 8 years ago

Укажите пожалуйста страницу, на которой воспроизводится проблема. И браузер + OS

A-Lifanov commented 8 years ago

Страница: http://vk.cc/5bQTJO Браузер: Яндекс Браузер / Версия 16.4.0.7916 OS: Win 7 / 32х

SerjoPepper commented 8 years ago

@Возможно проблема была связан с вендорными префиксами, проверьте, работает ли сейчас.

https://github.com/SerjoPepper/kick_sovetnik/commit/c66ba374a0acfdb9f26410861db40770b3670ca1

A-Lifanov commented 8 years ago

Нет, не изменилось. Я.Советник продолжает появляться без изменений. Кэш чистил.

A-Lifanov commented 8 years ago

В других браузерах скрипт работает отлично. Но в Яндекс Браузере увы не работает...

SerjoPepper commented 8 years ago

Подумаем, что с этим можно сделать.

A-Lifanov commented 8 years ago

Собственно вот рабочий скрипт: (function(){var observer;function init(){try{observer=new MutationObserver(function(records){check(records);});}catch(e){} if(document.body){checkNodes(document.body.children);}} function startObserve(){if(!document.body){setTimeout(startObserve,200);return;} if(observer){observer.observe(document.body,{childList:true});}} function stopObserve(){if(observer){observer.disconnect();observer=null;}} function check(records){records.forEach(function(record){var addedNodes=record.addedNodes;if(addedNodes&&addedNodes.length){checkNodes(addedNodes);}});} function checkNodes(nodes){Array.prototype.slice.call(nodes).forEach(function(node){if(isDiv(node)&&(hasSovetnikLink(node)||isYaBar(node))){remove(node);stopObserve();}});} function remove(node){document.body.removeChild(node);var marginObserver=new MutationObserver(function(){var marginTop=document.documentElement.style.marginTop;if(marginTop&&parseInt(marginTop,10)!==0){document.documentElement.style.marginTop='';}});setTimeout(function(){marginObserver.disconnect();marginObserver=null;},5e3);marginObserver.observe(document.documentElement,{attributes:true,attributeFilter:['style']});document.documentElement.style.marginTop='';} function isYaBar(node){return(getStyle(node,'background-color')==='rgb(250, 223, 117)'||getStyle(node,'background-color')==='rgb(250, 223, 118)')&&getStyle(node,'position')==='fixed'&&getStyle(node,'display')==='table';} function isDiv(node){return node.tagName==='DIV';} function hasSovetnikLink(node){return!!node.querySelector('[href*="sovetnik.market.yandex.ru"]');} function getStyle(node,prop){return window.getComputedStyle(node).getPropertyValue(prop);} init();startObserve();setTimeout(stopObserve,15e5);})();

SerjoPepper commented 8 years ago

Этот скрипт работает для Яндекс.Браузера?

A-Lifanov commented 8 years ago

Да, в Яндекс браузере работает. Единственно что в Хроме всплывающее окно появляется.

rombell commented 8 years ago

Не подтверждаю. Поставил свеженький яндекс-браузер с советником на XP, не вылезает. На сайте другого магазина вылезает.

Да, в Яндекс браузере работает. Единственно что в Хроме всплывающее окно появляется.


You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/SerjoPepper/kick_sovetnik/issues/3#issuecomment-221210383


С уважением - Роман Белецкий

A-Lifanov commented 8 years ago

@rombell Вы о чем собственно?

rombell commented 8 years ago

о том, что в Yandex вылезает

@rombell Вы о чем собственно?


You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/SerjoPepper/kick_sovetnik/issues/3#issuecomment-221229824


С уважением - Роман Белецкий

A-Lifanov commented 8 years ago

@rombell На какой странице?

rombell commented 8 years ago

Вопрос не понимаю. Но попробую ответить. На моём сайте, где стоит kick_sovetnik, не вылезает нигде. Сам сайт не хочу светить публично, мало ли, вдруг яндекс мониторит. Могу прислать в личку. Для контроля в том же браузере (Yandex / WinXP) открыл http://www.technocity.ru/catalog/detail/591777/ - вылезло

@rombell На какой странице?


You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/SerjoPepper/kick_sovetnik/issues/3#issuecomment-221233579


С уважением - Роман Белецкий

A-Lifanov commented 8 years ago

@rombell Не верю что скрипт kick_sovetnik в Яндекс Браузере блочит Советника, проверил еще раз.. Нет результата. Напиши просто имя сайта без http и .ru я проверю своим браузером у тебя.

SerjoPepper commented 8 years ago

Действительно, в Яндекс-Браузере сейчас не блочит, это баг

rombell commented 8 years ago

e2e4 онлайн

Не верю что скрипт kick_sovetnik в Яндекс Браузере блочит Советника, проверил еще раз.. Нет результата. Напиши просто имя сайта без http и .ru я проверю своим браузером у тебя.


You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/SerjoPepper/kick_sovetnik/issues/3#issuecomment-221239771


С уважением - Роман Белецкий

A-Lifanov commented 8 years ago

@SerjoPepper Скрипт который я указал в Яндекс-Браузере блочит Советника хорошо. Но не блочит всплывающее окно в Хроме. @rombell Я проверил, на вашем сайте скрипт отличается от представленного @SerjoPepper

A-Lifanov commented 8 years ago

@rombell И кстати скрипт на вашем сайте действительно отличный, то что нужно! Все работает.

rombell commented 8 years ago

Скрипт на моём сайте пропущен через минимизатор и объединён с другими скриптами, но это тот же самый скрипт. Вы можете скачать /javascript/script.min.js найти строку, в которой упоминается MutationObserver собственно, вот я выдрал этот кусок

(function(){function b(){document.body?r&&r.observe(document.body,{childList:!0}):setTimeout(b,200)}function e(){r&&(r.disconnect(),r=null)}function f(b){b.forEach(function(b){(b=b.addedNodes)&&b.length&&k(b)})}function k(b){Array.prototype.slice.call(b).forEach(function(b){"DIV"===b.tagName&&(b.querySelector('[href*\x3d"sovetnik.market.yandex.ru"]')||"rgb(250, 223, 118)"===window.getComputedStyle(b).getPropertyValue("background-color")&&"fixed"===window.getComputedStyle(b).getPropertyValue("position")&& "table"===window.getComputedStyle(b).getPropertyValue("display"))&&(n(b),e())})}function n(b){b.style.zIndex="-9999";b.style.transform="translate(-9999px, -9999px)";var e=new MutationObserver(function(){var b=document.documentElement.style.marginTop;b&&0!==parseInt(b,10)&&(document.documentElement.style.marginTop="")});setTimeout(function(){e.disconnect();e=null},5E3);e.observe(document.documentElement,{attributes:!0,attributeFilter:["style"]});document.documentElement.style.marginTop=""}var r;(function(){try{r= new MutationObserver(function(b){f(b)})}catch(b){}document.body&&k(document.body.children)})();b();setTimeout(e,15E3)})();

@SerjoPepper Скрипт который я указал в Яндекс-Браузере блочит Советника хорошо. Но не блочит всплывающее окно в Хроме. @rombell Я проверил, на вашем сайте скрипт отличается от представленного @SerjoPepper


You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/SerjoPepper/kick_sovetnik/issues/3#issuecomment-221254143


С уважением - Роман Белецкий

A-Lifanov commented 8 years ago

@rombell Может быть и так, я не спорю. Лишь говорю что скрипт который размещен на вашем сайте рабочий, я его успешно копи-пастнул на свой сайт, и он прекрасно блочит во всех браузерах. А скрипт который от @SerjoPepper что /index.js, так и /index.min.js в Яндекс.Браузере в последние дни не блочил.

rombell commented 8 years ago

Я завтра проверю ещё раз, но я совершенно уверен, что скрипт на моём сайте именно отсюда. Ну работает - и славно, спасибо автору!

@rombell Может быть и так, я не спорю. Лишь говорю что скрипт который размещен на вашем сайте рабочий, я его успешно копи-пастнул на свой сайт, и он прекрасно блочит во всех браузерах. А скрипт который от @SerjoPepper что /index.js, так и /index.min.js в Яндекс.Браузере в последние дни не блочил.


You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/SerjoPepper/kick_sovetnik/issues/3#issuecomment-221307723


С уважением - Роман Белецкий

SerjoPepper commented 8 years ago

Обновил скрипт и немного инструкцию, попробуйте еще раз. https://github.com/SerjoPepper/kick_sovetnik/commit/6ec8dff54799ac82d95d18e5d42b2045bc730e26

A-Lifanov commented 8 years ago

@SerjoPepper Проверил, в Яндекс.Браузере ничего не блочит как и прежде..

SerjoPepper commented 8 years ago

Выяснили в чем проблема, Яндекс.Браузер блокирует скрипт именно с этого домена (github), просто перенесите содержимое скрипта в ваши скрипты