Javascript gDBView未定义,xul

Javascript gDBView未定义,xul,javascript,xul,thunderbird,thunderbird-addon,Javascript,Xul,Thunderbird,Thunderbird Addon,我正在尝试使用XUL编写一个Thunderbird扩展,XUL是一个自定义按钮,用于访问当前显示的电子邮件正文并对其进行处理 显然,使用全局变量gDBView,这是可能的,如下所示: 不幸的是,如果在我的扩展中复制该行: msgURI = gDBView.URIForFirstSelectedMessage ; 我从Thunderbird控制台收到以下错误: 未定义gDBView 这有什么原因吗?这是访问邮件正文的最佳(也是正确的)方法吗?正如瓦迪米尔正确猜测的那样,您可能在错误的上下

我正在尝试使用XUL编写一个Thunderbird扩展,XUL是一个自定义按钮,用于访问当前显示的电子邮件正文并对其进行处理

显然,使用全局变量
gDBView
,这是可能的,如下所示:

不幸的是,如果在我的扩展中复制该行:

msgURI = gDBView.URIForFirstSelectedMessage ;    
我从Thunderbird控制台收到以下错误:

未定义gDBView


这有什么原因吗?这是访问邮件正文的最佳(也是正确的)方法吗?

正如瓦迪米尔正确猜测的那样,您可能在错误的上下文中运行脚本。检查
gDBView
是否存在的一种简单方法是,在菜单中点击
Tools>Error Console
,然后粘贴
top.opener.gDBView
,然后点击
Enter
。这将返回(对我来说)
[xpconnect wrapped(nsISupports,nsIMsgDBView,nsITreeView)]
,这意味着该对象确实存在。

正如Wladimir正确猜测的那样,您可能在错误的上下文中运行脚本。检查
gDBView
是否存在的一种简单方法是,在菜单中点击
Tools>Error Console
,然后粘贴
top.opener.gDBView
,然后点击
Enter
。这将返回(对我来说)
[xpconnect wrapped(nsISupports,nsIMsgDBView,nsITreeView)]
,这意味着该对象确实存在。

我猜您将该行放入了由邮件窗口覆盖加载的脚本中?你什么时候运行它?我猜你把这行代码放到了一个由邮件窗口覆盖加载的脚本中?你什么时候开?
msgURI = gDBView.URIForFirstSelectedMessage ;