gDBView 未定义和 xul
gDBView is not defined and xul
我正在尝试使用XUL编写Thunderbird扩展,XUL是一个自定义按钮,可以访问当前显示的电子邮件正文并对其进行操作。
显然,使用全局变量 gDBView
可以实现这,如在显示邮件用户代理扩展中:
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 ;
我从雷鸟控制台收到以下错误:
gDBView 未定义
发生这种情况有什么原因吗?这是访问邮件正文的最佳(也是正确)方法吗?
正如 Wladimir 正确猜测的那样,您可能在错误的上下文中运行脚本。检查gDBView
是否存在的一种简单方法是,在菜单中,点击 Tools > Error Console
,然后粘贴top.opener.gDBView
,然后点击 Enter
。这返回(对我来说)[xpconnect wrapped (nsISupports, nsIMsgDBView, nsITreeView)]
这意味着对象确实存在。
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- $window.ga在AngularJS事件中未定义
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 如何消除代码中的未定义和其他问题
- 未捕获的ReferenceError:$未定义
- this.router在AngularJS 2中未定义
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 节点fs.stat名称未定义
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- Jquery未定义函数正在停止其他操作
- AngularJS指令出错-无法读取属性'编译'的未定义
- 这.SOMETHING 总是返回未定义的 - extjs
- 无法获取属性'Id'使用Knockout.js的未定义或空引用API
- Wordpress中带有JQuery Accordion的未定义匿名函数
- gDBView 未定义和 xul