Блокируем Советник Яндекс.Маркета

Многих владельцев онлайн магазинов задевает поведение Советника Яндекс.Маркета, который уводит пользователя с оплаченного перехода на сайт. Таким образом владелец магазина скорее всего потеряет клиента…

TRDL;

document.addEventListener("DOMNodeInserted", checkYandexInserts, false);
function checkYandexInserts (event) {
	var node = event.target,
		html = node.innerHTML,
		src = node.src,
		fromYandex = /market.yandex.ru/.test(html) || (src && /metabar.ru/.test(src));

	if (fromYandex) {
		node.parentNode.removeChild(node);
		(node.nodeName.toUpperCase() === "IFRAME") && document.removeEventListener("DOMNodeInserted", checkYandexInserts);
	}
}

Добавим прослушку события вставки новых элементов в документ "DOMNodeInserted". Поскольку использование синхронных MutationEvents не рекомендуется, так как возможны проблемы с производительностью или зависание браузера при неправильном использовании, то такой код следует использовать с осторожностью.
Проверка происходит на наличие ссылок уводящих пользователя в Яндекс.Маркет, а так же на загрузку скриптов и фрейма с домена metabar.ru. Таким образом код фрейма не успевает выполниться.

Метки:

Contacts

Верстка сайтов

По любым вопросам по верстке сайтов вы всегда сможете обратиться ко мне в удобное для вас время:

Standards

При верстке сайтов с использованием различных технологий я руководствуюсь следующими стандартами:

Tags cloud