Firefox插件未定义var来自框架

时间:2013-10-20 14:09:59

标签: javascript dom firefox-addon

所以基本上我将一个脚本注入一个框架以获取一个特定的变量,但是我收到以下错误: content.exenv2.exerciseframe.singletons未定义

但是当我通过firebug控制台访问此变量时,它可以工作。我也可以从框架中访问其他变量而不是我需要的变量

完整错误

error: dwh: An exception occurred.
TypeError: content.exenv2.exerciseframe.singletons is undefined
resource://jid1-os5kkx1kvkogmq-at-jetpack/dwh/data/inject.js 2
Traceback (most recent call last):
  File "resource://jid1-os5kkx1kvkogmq-at-jetpack/dwh/data/inject.js", line 2, i
n
    var length = content.exenv2.exerciseframe.singletons.entries["TkExerciseItem
s_()"].length;

前两行代码

var test = content.exenv2.exerciseframe.loadingTimer; //This works
var length = content.exenv2.exerciseframe.singletons.entries["TkExerciseItems_()"].length; //Error 

1 个答案:

答案 0 :(得分:0)

好像Firefox插件无法访问单例的原型变量。

https://addons.mozilla.org/en-US/developers/docs/sdk/latest/dev-guide/guides/content-scripts/accessing-the-dom.html

如上面的链接所述,应使用unsafeWindow访问此类变量。

所以工作代码是:

var length = unsafeWindow.content.exenv2.exerciseframe.singletons.entries["TkExerciseItems_()"].length;