首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带contentWindow.history的火狐隐藏窗口中的iFrame?

带contentWindow.history的火狐隐藏窗口中的iFrame?
EN

Stack Overflow用户
提问于 2010-04-02 06:18:06
回答 2查看 1.5K关注 0票数 1

我正在尝试在我的Firefox扩展中使用content权限运行托管脚本。为此,我在隐藏窗口中创建了一个内容iframe,该窗口指向一个提取脚本的html文件。此脚本要求' history‘可用,但由于某些原因,在隐藏窗口中创建的iframe没有历史记录。

Chromebug为iframe的contentWindow.history报告了这一点:

object does not support history (nsIDOMHistory)

当它不可用时,脚本会给出这个错误:

Error: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHistory.length]

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2010-04-14 05:15:47

原来隐藏窗口的URL过去是关于:空白的,但这显然是一个安全缺陷,所以它现在是resource://gre/res/iddenWindow.html(或主干上的resource://gre-resources/iddenWindow.html),所以它没有XUL浏览器元素所需的chrome特权,以便能够连接它自己的会话历史记录,甚至访问它自己的内容文档。

即使使用XUL iframe元素,也必须小心,因为它的所有属性都不起作用,同样是因为它是在没有chrome权限的情况下运行的。所以你必须做像iframeElement.boxObject.QueryInterface(Components.interfaces.nsIContainerBoxObject).docShell.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindow)这样的事情来检索它的内容窗口。

票数 1
EN

Stack Overflow用户

发布于 2010-04-13 07:27:01

默认情况下,A将自动连接会话历史记录,而will不会,但您始终可以手动连接它。

不要忘记确保您的元素是在XUL名称空间中创建的。我相信隐藏的窗口是关于:空白的HTML文档,除了在Mac上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2564044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档