Войдите в консоль ошибок Firefox из JavaScript
можно ли добавлять сообщения во встроенную консоль ошибок Firefox из кода JavaScript, запущенного на веб-страницах?
Я знаю, что у меня есть Firebug, который предоставляет console объект и его собственная консоль ошибок, но я искал быстрое исправление ранее и ничего не мог найти.
Я думаю, что это может быть невозможно вообще, чтобы предотвратить вредоносные веб-страницы от спама журнала?
9 ответов:
вы не можете писать в консоль непосредственно из ненадежного JavaScript (например, скрипты, поступающие со страницы). Однако, даже если установка Firebug вам не нравится, я бы рекомендовал проверить Firebug Lite, который не требует установки в браузер (и, по сути, даже не требует Firefox). Это скрипт, который вы можете включить в любую веб-страницу (даже динамически), что даст вам некоторые основные функции Firebug (например,
console.log()).
Если определить глобальную функцию, которая проверяет наличие окна.консоль, вы можете использовать Firebug для трассировки и по-прежнему играет хорошо с другими браузерами и/или если вы выключите трассировку консоли Firebug:
debug = function (log_txt) { if (typeof window.console != 'undefined') { console.log(log_txt); } } debug("foo!");
Да, вы можете =P
function log(param){ setTimeout(function(){ throw new Error("Debug: " + param) },0) } //Simple Test: alert(1) log('This is my message to the error log -_-') alert(2) log('I can do this forever, does not break') alert(3)обновление до реальной функции
Это простой хак, просто для удовольствия.
Я бы просто установить Firebug и использовать
console.log. Если вы не можете сделать это, хотя, вы всегда можете бросить ошибку:throw "foobar"; throw new Error("bazquux");конечно, это выведет вас из кода, который вы сейчас выполняете, поэтому вы не можете использовать его для подробного ведения журнала, но если вы можете обойти это, я думаю, что это единственный способ получить что-то из коробки.
AFAIK, это невозможно. Но если вас интересует, как расширения в Firefox взаимодействуют с консолью ошибок,зацените.
эта функция не требует ни расширения, ни библиотеки. Однако он предоставляет полные привилегии для соответствующего веб-сайта. Не беспокойтесь, так как вы тот, кто развивает его, не так ли?
// Define mylog() function to log to Firefox' error console if such a // thing exists function defineMyLog() { // Provide a useless but harmless fallback mylog = function(msg) { }; // return; // disable in production if (typeof(netscape) === "undefined") { // alert("Logging implemented only for Firefox"); return; } // The initial auth popup can be avoided by pre-setting some magic user_pref // ( "capability.principal.codebase.p0.granted", "UniversalXPConnect"), etc. try { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); } catch (e) { // User has denied privileges // alert(e.name + ": " + e.message); return; } ffconsoleService = Components.classes["@mozilla.org/consoleservice;1"] .getService(Components.interfaces.nsIConsoleService); mylog = function (msg) { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); ffconsoleService.logStringMessage(new Date().toLocaleTimeString() + ": " + msg); } mylog("Firefox logging function has been defined"); // window.open("javascript:"); // this URL does not work anymore? }
Если вам интересно, проверьте сценарий, который я написал - это" дешевая " замена Firebug, которая не мешает любой нормальной консоли (например, Safari или Chrome), но расширяет ее почти всеми методами Firebug:
http://code.google.com/p/glentilities/
посмотрите под капотом, и вы увидите, что я имею в виду под "дешевым". : -)
совместите его с Юи или json.org сериализаторы JSON для сортировки репликации консоли.dir.
Firebug и Firebug Lite, безусловно, лучше GUIs, но я использую мой доморощенный один все время, чтобы сохранить ведение журнала безопасно даже для производственного кода -- без постоянное комментирование и без комментирования,
У меня была проблема сегодня, и обратите внимание, что консоль в Firebug имеет разные вкладки, а моя была в информации о настройке, и вы должны выбрать опцию ALL, чтобы увидеть консоль.работа журнала без ошибок trowing! Вот так просто! ;^)
Comments