Я хочу использовать свою собственную консоль для моего расширения, где я распечатал бы различную информацию об отладке. Я думал, что сделаю это путем выполнения
window.open("chrome://myextension/content/console.xul"..
и затем печатая в текстовые поля того окна. Вы уже видите что-то не так здесь?=)
Теперь у меня есть небольшая проблема, window.open возвраты сразу и если я затем иду вперед и сразу использую myconsole.log ("шиканье") функция, затем содержание в том недавно открытом окне еще не загружается, и я получу ошибки. Это означает, что я должен ожидать консоли, чтобы закончить загружаться, прежде чем я смогу распечатать к ней. Каков был бы правильный способ сделать его? Я мог использовать nsITimer или thread.sleep в методе журнала, чтобы продолжать проверять, загружается ли он уже, но мне не нравится это. Я также не знаю, как я мог правильно использовать window.onload событие, потому что единственный способ, которым я вижу, является чем-то как window.onload = функция () {весь мой дополнительный код..}, который я не люблю также.
Я хочу, чтобы это использовалось в любое время где угодно так или иначе как это
console = Cc["@myconsole;1"].getService().wrappedJSObject;
console.log("foo");
Совет? Спасибо за терпение =)
Я бы реализовал это сначала как модуль бэкенд-логинга:
https://developer.mozilla.org/en/JavaScript_code_modules
А затем написал бы пользовательское окно chrome, которое взаимодействует с ним (получает все логи, очищает логи, подписывается на получение новых событий в логах)
Чтобы сэкономить время на кодинг, смотрите также console2 и (наименее известный) firebug tracing console: