Можно ли перезаписать функцию window.location пользовательской функцией? - PullRequest
9 голосов
/ 25 июня 2011

Можно ли отключить или, что еще лучше, заменить пользовательской функцией, window.location?

Этот вопрос связан с: Отключить встроенную функцию в JavaScript (оповещение)

Хотя для window.alert это работает достаточно хорошо, для window.location это не работает.

Мы бы хотели найти способ заменить или отключить (замена была бы идеальной, поэтому мы могли бы вести журнал AJAX) window.location ... Грязные рекламодатели время от времени использовали это, чтобы украсть людей из нашей сети. свойства.

Есть идеи?

Даже то, что работает только в нескольких конкретных браузерах, было бы хорошо, так как однажды (через AJAX-логи) мы можем действовать довольно быстро.

Ответы [ 2 ]

6 голосов
/ 25 июня 2011

Я не верю, что вы можете переназначить window.location.От MDN :

Сводка

Возвращает объект Location, который содержит информацию об URL-адресе документа и предоставляет методы для измененияэтот URL. Вы также можете назначить это свойство для загрузки другого URL .

https://developer.mozilla.org/en/DOM/window.location

Поскольку оно принимает значение, подобное свойству, как бы вы "переназначили""объект / функция с другим значением?Я не думаю, что это возможно из-за поведения собственности.

5 голосов
/ 20 апреля 2012

попробуйте

var _window = {
       location: "myLocation"
};

(function (window) {
   console.log(window.location);
}(_window));
...