Перезапись родных методов в Javascript - PullRequest
4 голосов
/ 16 июля 2009

Я делаю некоторый анализ некоторых Javascript и хочу оставить включенным javascript, но отключить все окна alert () и перенаправления self.location.

В настоящее время я использую прокси-сервер регулярных выражений, но это похоже на излишество.

Я могу переопределить некоторые нативные методы, но не другие в Firefox, т.е.

window.alert = function('') { return null; }
alert('test!') // works as expected

Однако, когда я пытаюсь аналогичным образом перезаписать window.location = (который является псевдонимом для вызова метода window.assign ()), он не работает

window.location.assign = function('') { return null; }
window.location.assign('#') // redirects :(

Я попытался установить Window.prototype.location.assign, но получаю исключение «Невозможно изменить свойства WrappedNative».

Какие-либо альтернативы NoScript для мелкозернистого управления JS, или можно перезаписать определенные методы Native JS?

1 Ответ

2 голосов
/ 16 июля 2009

Это предлагаемое решение для отключения alert может работать.

...