Совет относительно реализации моей собственной консоли как XPCOM

Я хочу использовать свою собственную консоль для моего расширения, где я распечатал бы различную информацию об отладке. Я думал, что сделаю это путем выполнения

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");

Совет? Спасибо за терпение =)

1
задан Karolis 4 July 2010 в 16:13
поделиться

1 ответ

Я бы реализовал это сначала как модуль бэкенд-логинга:

https://developer.mozilla.org/en/JavaScript_code_modules

А затем написал бы пользовательское окно chrome, которое взаимодействует с ним (получает все логи, очищает логи, подписывается на получение новых событий в логах)

Чтобы сэкономить время на кодинг, смотрите также console2 и (наименее известный) firebug tracing console:

2
ответ дан 2 September 2019 в 23:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: