я могу переопределить / переопределить "глобальные" функции Javascript, такие как verify () и alert ()? - PullRequest
2 голосов
/ 23 января 2010

Я хочу сделать некоторую автоматизацию браузера, и эти надоедливые окна подтверждения / предупреждения - настоящая боль. Полное отключение JavaScript в этом случае, к сожалению, не вариант.

Что ж, мне было интересно, могу ли я просто изменить определение этих методов, как это видно из интерпретатора JavaScript моего браузера, чтобы в основном ничего не делать и возвращать true? Обратите внимание, что я знаю о переопределении их в коде Javascript напрямую, например, положить в

function alert(message)
{
  return true;
}

но AFAIK это не жизнеспособный подход для этой ситуации, потому что при выполнении автоматизации браузера мне приходится работать с Javascript других людей. Более того, моя программа фактически начинает манипулировать этими сайтами уже после полной загрузки страницы в браузер, поэтому я не могу просто сначала автоматически переписать javascript, а затем загрузить страницу. Итак, мне было интересно, могу ли я вместо этого просто «навсегда» изменить способ, которым оповещение / подтверждение реализовано и выполняется в моем браузере. Вроде как эквивалент dll-инъекции и так далее в сфере приложений для Windows.

Ответы [ 2 ]

1 голос
/ 27 января 2010

Да, это может быть сделано. Попробуйте это тема

0 голосов
/ 31 марта 2011

эта работа на chrome 10, ff 4, msie 8 (для краткости используется jquery)

window.alert = function(x) {
    $('<pre>',{text:x}).appendTo('body');
    }
...