Задать вопрос

Как убрать из обработки один java script на сайте?

Искал информацию но так и не нашел. Нужно удалить один из скриgтов на сайте, что бы он перестал работать. В скрипте стоит setInterval(), нужно сделать так что бы он перестал обрабатываться. Не важно что он уже один или два раза отработал. Доступа к сайту нету, я внедряю свой скрипт в другой сайт. Пытался удалять теги скрипта, но это не помогает, если скрипт запустился то не важно есть его теги в доме или нету уже.
  • Вопрос задан
  • 4692 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 7
Отменить все интервалы можно через перебор
var i = 10e4; while(--i) clearInterval(i);
Ответ написан
JekFdrv
@JekFdrv Автор вопроса
webdeveloper
Моя задача достучатся к данным, которые получает чужой ajax, хотел просимулировать запрос, но стоит защита (раз в 20 секунд можно). Тогда я решил переписать функцию отправки запроса и обработки, но не получается убрать из обработки текущую функцию.
Ответ написан
spmbt
@spmbt
stackoverflow.com/questions/3141064/how-to-stop-all-timeouts-and-intervals-using-javascript
В простых, но частных случаях помогает clearTimeout(1); для Fx и clearTimeout(0); для Chrome.
Ответ написан
Комментировать
@rPman
Если оригинальный скрипт не сохранил идентификатор таймера, возвращаемого при иннициализации, то никак. Официального способа перечислить запущенные таймеры нет, кроме как переопределить setInterval ДО вызова на свою функцию.

Если повезет, можно найти в вызываемом скрипте условие, при котором он завершится с ошибкой или будет работать вхолостую (удалить используемый DOM объект например).
Ответ написан
Комментировать
JekFdrv
@JekFdrv Автор вопроса
webdeveloper
К сожалению я не могу понять даже почему я не вижу глобальных переменных в скрипте который я вставляю в чужой дом.
<script type="text/javascript">
    	var a = 12;
</script>

вставляю после него
<script type="text/javascript">
    	console.log(a);
</script>

Получаю «a is not defined »;
Ответ написан
Комментировать
@rozhik
Если правильно написан скрипт — то никак. Он полностью отвязывается от всего, что доступно вне его контекста. Но подобные скрипты редкость.
Есть надежда на другое. Если Вы сохраните у себя в переменных как минимум один, которой пользуется скрипт, и замените его на выброс исключения, или что-то подобное. То тогда сможете пользоваться как оригинальным методом, так и убить ненужный скрипт.
Если вы бросите сюда код скрипта — то помогу. А так пример на пальцах:
(function() { var badFunc = function() { console.log( 'Im bad'); setTimeout( badFunc, 10 ); } badFunc(); })()
Как видите, в этом коде, закрыто в наружу всё, за исключением console.log;
Убиваем скрипт так:
console.log1 = console.log; console.log = function() { throw 'Death'; }
Ответ написан
Комментировать
SkiF_TLT
@SkiF_TLT
Смущает:
Доступа к сайту нету, я внедряю свой скрипт в другой сайт.


Если у заказчика нет доступа к сайту, вы уверены что это именно его сайт? )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы