Ответ 1
Вы можете заблокировать функции JavaScript следующим образом:
(function(){
var oldLog = console.log;
console.log = function (message) {
// DO MESSAGE HERE.
oldLog.apply(console, arguments);
};
})();
- Линия 1 завершает вашу функцию в закрытии, поэтому никакие другие функции не имеют прямого доступа к
oldLog
(для удобства обслуживания). - Строка 2 фиксирует исходный метод.
- Строка 3 создает новую функцию.
- Строка 4 - это отправку
message
на ваш сервер. - Строка 5 вызывает оригинальный метод, поскольку он был бы обработан изначально.
apply
используется, поэтому мы можем вызвать его на console
, используя исходные аргументы. Просто вызов oldLog(message)
завершится неудачно, потому что log
зависит от его связи с console
.
Обновление. В ответе zzzzBov ниже, в IE9 console.log
на самом деле не функция, поэтому oldLog.apply
завершится с ошибкой. Подробнее см. console.log.apply не работает в IE9.