Войдите в консоль ошибок Firefox из JavaScript



можно ли добавлять сообщения во встроенную консоль ошибок Firefox из кода JavaScript, запущенного на веб-страницах?



Я знаю, что у меня есть Firebug, который предоставляет console объект и его собственная консоль ошибок, но я искал быстрое исправление ранее и ничего не мог найти.



Я думаю, что это может быть невозможно вообще, чтобы предотвратить вредоносные веб-страницы от спама журнала?

581   9  

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

    Ничего не найдено.