FireBug Lite сообщениеQueue null - PullRequest
       7

FireBug Lite сообщениеQueue null

21 голосов
/ 23 сентября 2011

Я пытаюсь заставить FireBug Lite работать с IE7. Учитывая этот код (и ничего больше):

<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>
<link rel="stylesheet" href="../../css/third-party/jquery.ui.all.css">
This is a test!

... Я получаю сообщение об ошибке в строке: 8180, 'this.messageQueue является нулем или не является объектом', и консоль не отображается.

Если я удалю ссылку на файл CSS, он будет работать нормально. Кроме того, этот CSS отлично работает с FireBug под FF и GC.

Файл CSS недавно загружен с веб-сайта jQ и не содержит нигде около 8000 строк (после расширения всех @imports); ни один из кодов, доступных для моего веб-сервера, не содержит токен 'messageQueue'.

У меня нет никаких плагинов IE (о которых я знаю), и я никогда не использовал какие-либо продукты MSMQ на этом ПК.

Я также пробовал случайные вещи, такие как переключение порядка операторов, загрузка обычных файлов jjuery .js, использование вместо этого букмарклета FireBug и т. Д., Но все безрезультатно.

Любой совет?

Ответы [ 4 ]

37 голосов
/ 27 октября 2011

Это известная ошибка, которая затрагивает IE7 (и IE8) и отслеживается на трекере ошибок firebug .

Это по-прежнему проблема на всех каналах (Firebug 1.4 stable /debug / beta / developer).

Отказ от ответственности: Если вы собираетесь использовать эти методы, подпишитесь на обсуждение об этой ошибке и обязательно остановитеиспользовать этот надуманный либо когда он исправлен, либо Firebug 1.5 выходит.

Если вам нужно использовать firebug сейчас, вы можете использовать firebug 1.3.Этот метод я не могу найти нигде документированным ...

<script type="text/javascript"
    src="https://getfirebug.com/releases/lite/1.3/firebug-lite.js"></script>

A Лучшим подходом было бы использование Firebug 1.3 в качестве букмарклета.Я взломал этот URL-адрес букмарклета на основе архива релиза firebug:

javascript:(function(F,i,r,e,b,u,g,L,I,T,E){if(F.getElementById(b))return;E=F[i+'NS']&&F.documentElement.namespaceURI;E=E?F[i+'NS'](E,'script'):F[i]('script');E[r]('id',b);E[r]('src',I+g+T);E[r](b,u);(F[e]('head')[0]||F[e]('body')[0]).appendChild(E);E=new%20Image;E[r]('src',I+L);})(document,'createElement','setAttribute','getElementsByTagName','FirebugLite','3','releases/lite/1.3/firebug-lite.js','releases/lite/latest/skin/xp/sprite.png','https://getfirebug.com/','#startOpened');

Просто добавьте его на панель ссылок, используя приведенное выше в поле URL.

1 голос
/ 23 июля 2013

Одна из возможных причин этого: если нет таблицы стилей или данных стиля CSS . Понятия не имею, почему.

Если CSS отсутствует и вы видите эту ошибку, добавьте ее, и Firebug Lite может просто снова заработать.


Например, этот JSbin с правилом CSS для токенов работает с Firebug Lite в IE8:

http://jsbin.com/etecub/5/

Код: http://jsbin.com/etecub/5/edit


Этот JSbin, идентичный, но без CSS-правил, не может загрузить Firebug Lite в IE8 с ошибкой 'this.messageQueue' is null or not an object:

http://jsbin.com/etecub/6/

Код: http://jsbin.com/etecub/6/edit


Кажется, что не имеет значения, действительно ли правило применено или нет (например, http://jsbin.com/etecub/9 работает нормально). Если у вас есть прикрепленная таблица стилей и вы видите эту ошибку в любом случае, и вышеописанное не работает, возможно, попробуйте добавить блок <style> в документ с правилом CSS или двумя.

0 голосов
/ 04 февраля 2017

Только что увидел ответ, который мне помог, отсюда: https://github.com/angular/angular.js/issues/3596. Сам отчет об ошибке находится в репозитории проекта Angular, но он не имеет никакого отношения к Angular - проблема для меня , проявлялась на ванильной странице HTML / CSS / JS, и исправление работало там же.

Цитата оттуда:

firebug-lite-beta.js: 30905 Uncaught TypeError: Невозможно прочитать свойство 'push' из неопределенного

Добавление базовой нулевой проверки:

if (typeof this.messageQueue == 'undefined') {

this.messageQueue = [];

}

Кажется, решает проблему.

0 голосов
/ 28 сентября 2016

У меня была та же проблема с Firebug Lite, не открывающимся с моим приложением Meteor.

После прочтения обсуждений bugtracker я попробовал debug-версию, которая в основном является только несжатой версией библиотеки.И да, это имело значение, и Firebug Lite теперь запускается как в Chrome, так и в Safari.

Тег, который я сейчас использую:

<script type="text/javascript" src="https://getfirebug.com/firebug-lite-debug.js"></script>
...