JavaScript 对象在 FireBug 中可见,在代码中不可访问

标签 javascript firefox-addon firebug

在我的代码中,我有一行转储当前窗口(恰好是一个 youtube 视频页面):

Firebug.Console.log(myWindow);

可以看出 window 对象包含“yt”属性,这是另一个可以在调试器中轻松检查的对象:

http://i.imgur.com/lHHns.png

不幸的是,打电话

 Firebug.Console.log(myWindow.yt);

记录“未定义”- 为什么会这样,我如何访问这个“yt”属性?

编辑:一个可能很重要的补充:我正在编写的代码是 firefox 扩展的一部分,因此它并不是真正在 pgae 中运行,而是在 chrome 中运行 - 我开始认为这可能是原因.与脚本标签中的代码相反,Chrome 脚本能否以某种方式限制它们可以看到/访问的内容?

最佳答案

出于安全原因,Firefox 扩展不直接访问网页对象,而是通过 wrapper .此包装器允许您使用 DOM 对象定义的所有属性,但页面 JavaScript 添加的任何内容都是不可见的。你可以access the original object :

Firebug.Console.log(XPCNativeWrapper.wrappedJSObject.yt);

但是,如果您想从扩展程序与网页交互,您应该考虑网页无法欺骗您的替代方案(例如,在内容窗口中运行非特权代码:myWindow.location.href = "javascript:...").

关于JavaScript 对象在 FireBug 中可见,在代码中不可访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9961093/

相关文章:

css - 在 Firebug 中,如何判断什么是重写样式?

javascript - ('connect' 上的 NodeJS 事件)错误

javascript - CakePHP 开发人员试用 JavaScript MV*。感到困惑

javascript - 为什么 "~undefined"在 JavaScript 中是 -1?

javascript - 如何使用 Firebug 调试 Firefox 扩展?

javascript - 如何将带有 HTML 信息的 Json 文件放入 DOM 中?

java - 从浏览器将网络摄像头视频录制到本地文件系统

java - iMacros 框架名称疑难解答

javascript - 更改页面或刷新时失去全屏

firefox - FireBug 1.7.3 仍会在移除的断点处中断