【问题标题】:gDBView is not defined and xulgDBView 未定义和 xul
【发布时间】:2012-06-13 22:41:56
【问题描述】:

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

显然这可以使用全局变量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 未定义

发生这种情况有什么原因吗?这是访问邮件正文的最佳(和正确)方式吗?

【问题讨论】:

  • 我猜你把那行放到了一个由邮件窗口覆盖加载的脚本中?你什么时候运行它?

标签: javascript xul thunderbird thunderbird-addon


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多