2014-09-18 5 views

ответ

1

Когда вы заинтересованы в том, как что-то делается в одном из окон 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.

+0

Спасибо за ур ответ Макиен.Создание образца образца не возвращает содержимое в поле alert.it. Возвращает как [object XrayWrapper [object HTMLBodyElement]] и образец исходного окна не работает, я имею в виду, что предупреждение не отображается. –

Смежные вопросы