Есть ли способ подделать вызывающий файл в консоли Firebug? - PullRequest
4 голосов
/ 18 октября 2010

Примечание: Firebug - это расширение Firebug и / или инструменты разработчика Webkit.

Под фальшивкой вызывающего файла я имею в виду ссылку в правой части вывода консоли, указывающую на место, где находится функция вывода (как console.log).

Это становится проблемой, когда у вас есть унифицированный обработчик для сообщений об ошибках и т. д., поэтому все вызовы console.log происходят из одного и того же файла и белья.

IsЕсть ли способ подделать эту информацию?Или запечь такую ​​ссылку (указывающую на номер строки) в журнале консоли firebug (при условии, что у него есть трассировка стека)?Просто добавление имени файла и номера строки в конец любого журнала добавляет шум к выводу консоли, делая его беспорядочным.

Ответы [ 3 ]

2 голосов
/ 26 октября 2010

Большинство современных браузеров определяют функцию console.log.Как насчет того, чтобы вместо написания собственного обработчика ошибок, вы продолжаете и вызываете console.log везде, где у вас есть ошибка.Затем для браузеров, которые не определяют console.log, вы можете определить его самостоятельно, используя все, что захотите.Например, если вы хотите предупредить об ошибке в IE (или FF без установленного firebug .. и т. Д.), Вы можете использовать этот код:

<html>
<head>
    <title>Test</title>
</head>
<body>
    <button onclick="throwError()">
        Throw Error</button>

    <script type="text/javascript">
        function throwError() {
            console.log("error here!");
        }

        if (!window.console) {
            window.console = {
                log: function(e) {
                    alert(e);
                }
            };
        }

        //Added in EDIT: in production add these lines below to overwrite browser's console.log function
        window.console.log = function(e) {
            alert("production alert: " + e); //or whatever custom error logging you want
        };
    </script>

</body>
</html>

Вы можете добавить все, что хотите, к объекту консоли.Я проверил это в IE8 и Firefox, и я уверен, что вы сможете реализовать эту идею для любого набора браузеров, которые вы поддерживаете.функция console.log по умолчанию в Firefox, Safari и Chrome.Просто переназначьте элемент журнала объекта консоли на новую функцию, которая делает все, что вы хотите во время работы.

0 голосов
/ 26 октября 2010

В Firebug есть возможность показать стек вызовов наряду с ошибками.Нажмите на стрелку вниз рядом с именем вкладки консоли, чтобы увидеть и активировать ее.Слева от сообщения отображается значок «плюс», который показывает стек.Это может приблизить вас к коду, вызвавшему ошибку.

Если вам также потребуется регистрировать ошибки с помощью console.error (), чтобы использовать это.(хотя не уверен, насколько это совместимо с Chrome)

0 голосов
/ 18 октября 2010

Короткий трал на форумах, посвященных firebug, кажется, подразумевает, что он (иногда?) смотрит на исключение, чтобы определить, какой номер строки .

Так что вы вполне можете подделать это таким образом, рассудительным массажем.

...