火狐插件未定义的 var 来自框架

Firefox addon undefined var from frame

本文关键字:框架 var 插件 未定义 火狐      更新时间:2023-09-26

所以基本上我将脚本注入框架以获取特定变量,但出现以下错误:content.exenv2.exerciseframe.singletons未定义

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

完全错误

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;

前 2 行代码

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

显然,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;