Я разрабатываю расширение thunderbird. Я хочу получить содержимое mailitem в домашнем окне и создать почтовое окно. Как я могу это достичь?Получите содержимое тела thunderbird mailitem с помощью Javascript?
С уважением Sanju
Я разрабатываю расширение thunderbird. Я хочу получить содержимое mailitem в домашнем окне и создать почтовое окно. Как я могу это достичь?Получите содержимое тела thunderbird mailitem с помощью Javascript?
С уважением Sanju
Когда вы заинтересованы в том, как что-то делается в одном из окон Thunderbird, способ выяснить, как это реализовано в XUL DOM является установить [дополнение] [ 2] [DOM Inspector] [3] и используйте его для исследования того, как выглядит содержимое DOM. Вероятно, вы также захотите, надстройка [Element Inspector] [4], которая является очень полезным дополнением к DOM Inspector (щелчок правой кнопкой мыши открывает DOM Inspector для щелчка элемента). Вы также можете найти [Stacked Inspector] [5] полезным.
Другое дело - найти расширение, которое делает что-то в той же общей области, в которой вы хотите работать. Затем загрузите это расширение и посмотрите, как они сделали то, что вас интересует.
Ваш вопрос не содержит достаточной информации, чтобы дать вам точный подробный ответ. Нам нужно знать контекст, в котором вы работаете. Был ли запущен скрипт, запущенный как часть события пользовательского интерфейса из главного окна? Событие пользовательского интерфейса из окна создания?
Если сценарий был запущен из события пользовательского интерфейса в окне составления, вы можете получить доступ к содержимому сообщения с:
let editor = document.getElementById("content-frame");
let editorDocument = editor.contentDocument;
let messageBody = editorDocument.getElementsByTagName("body")[0];
Это должно работать, но я не проверил это:
let messageBody = document.getElementById("content-frame").contentDocument.body;
Что касается домашнего окна: Содержимое сообщения находится в элементе <browser id="messagepane">
. После того, как у вас есть вкладка, вы сможете найти <browser>
оттуда.
В Firefox вы можете найти <browser>
элемент с:
//Create some common variables if they do not exist.
// This should work from any Firefox context.
// Depending on the context in which the function is being run,
// this could be simplified.
if (typeof window === "undefined") {
//If there is no window defined, get the most recent.
var window=Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator)
.getMostRecentWindow("navigator:browser");
}
if (typeof document === "undefined") {
//If there is no document defined, get it
var document = window.content.document;
}
if (typeof gBrowser === "undefined") {
//If there is no gBrowser defined, get it
var gBrowser = window.gBrowser;
}
//Get the current tab & browser.
let tab = gBrowser.selectedTab;
let browserForTab = gBrowser.getBrowserForTab(tab);
Он должен быть похож на Thunderbird.
Спасибо за ур ответ Макиен.Создание образца образца не возвращает содержимое в поле alert.it. Возвращает как [object XrayWrapper [object HTMLBodyElement]] и образец исходного окна не работает, я имею в виду, что предупреждение не отображается. –