Я имею дело с системой, в которой следующий код Javascript (который находится вне моего контроля) выполняется на ранней стадии страницы
if (!("console" in window) || !("firebug" in console))
{
var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
"group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
window.console = {};
for (var i = 0; i < names.length; ++i)
window.console[names[i]] = function() {}
}
Этот код используется для создания объекта mock console
для предотвращения ошибок JavaScript в средах без консоли javascript. Это замечательно, за исключением того, что он также запрещает запуск консоли Google Chrome. Условное выражение явно проверяет firebug
, но что оно
if (!("console" in window) || !("firebug" in console))
Итак, есть ли способ сказать отладчику Chrome повторно инициализировать свой консольный объект? То есть, простым английским языком, сообщите Chrome
Эй, вы знаете, когда загружаете страницу и определяете для меня консольный объект? Сделайте это снова, чтобы мы могли переопределить то, что сделал пользователь в пространстве пользователя.
Я понимаю, что могу сделать что-то вроде
console.firebug = "faketrue";
и у вас есть условный захват, но я ограничен в системе и не имею возможности добавить javascript перед вышеупомянутыми ударами переопределения консоли. Другими словами, нет, я не могу просто добавить немного кода javascript сразу после начала главы.