2012-06-13 39 views
1

我想寫一個Thunderbird擴展使用XUL,一個自定義按鈕,訪問當前顯示的電子郵件正文,並做了一些事情。gDBView沒有定義和xul

顯然,這將使用全局變量gDBView是可能的,因爲在Display Mail User Agent extension

var msgURI = null ; 

if (gDBView) 
{ 
    msgURI = gDBView.URIForFirstSelectedMessage ; 
} 

if (msgURI == null) 
{ 
    return ; 
} 

var messenger = Components.classes["@mozilla.org/messenger;1"].createInstance (Components.interfaces.nsIMessenger) ; 
var msgService = messenger.messageServiceFromURI (msgURI) ; 

不幸的是,如果在我的分機我複製該行:

msgURI = gDBView.URIForFirstSelectedMessage ;  

我從收到以下錯誤Thunderbird控制檯:

gDBView未定義

是否有這樣的原因?這是訪問郵件正文的最佳(正確)方式嗎?

+0

我想你把那一行放入一個由郵件窗口覆蓋層加載的腳本中?你什麼時候運行它? –

回答

1

您可能正在錯誤的上下文中運行腳本,正如弗拉基米爾正確猜測的那樣。檢查gDBView是否存在的簡單方法是在菜單中按Tools > Error Console,然後粘貼top.opener.gDBView,然後點擊Enter。這返回(對我來說)[xpconnect wrapped (nsISupports, nsIMsgDBView, nsITreeView)]這意味着對象確實存在。