Html 火狐。允许通过javascript访问IFrame元素

Html 火狐。允许通过javascript访问IFrame元素,html,firefox,iframe,cors,x-frame-options,Html,Firefox,Iframe,Cors,X Frame Options,我正在编写一个在外部网页上查找css选择器的工具。它是一个普通的html页面,包含带有目标站点和少量控制元素的iframe。所有的逻辑都是使用jquery的javascript,所以目前还没有服务器端 我面临的问题是a无法使用Firefox26.0将处理程序/类添加到iframe文档元素。示例代码: iframe.contents().find("*").hover(function() { console.log("This is " + $(this).get(0).tagNam

我正在编写一个在外部网页上查找css选择器的工具。它是一个普通的html页面,包含带有目标站点和少量控制元素的iframe。所有的逻辑都是使用jquery的javascript,所以目前还没有服务器端

我面临的问题是a无法使用Firefox26.0将处理程序/类添加到iframe文档元素。示例代码:

 iframe.contents().find("*").hover(function() {
     console.log("This is " + $(this).get(0).tagName + "element");
 }
我在控制台中收到下一条错误消息:
错误:访问属性“文档”的权限被拒绝。
。我知道这确实是一个安全特性,但我只需要设法解决它

我所尝试的:

  • 使用Google Chrome-它允许运行带有特殊标志(
    --禁用web安全
    )的浏览器,该标志关闭此类安全功能。这很有帮助,我的工具正如我预期的那样工作,但我需要完全使用Firefox
  • 使用插件。这根本没用。我还试图通过该工具添加
    x-frames-origin标题
    ,但没有结果
  • 关闭firefox配置中的
    security.fileuri.strict\u origin\u policy
    标志。也没用
也许我错过了什么,还有其他解决方法/更好的解决方案?我将感谢任何帮助


更新:页面和iframe不在同一站点上。我的工具是local.html文件,iframe源代码-任何站点(wikipedia、yahoo等)

最终我找到了解决方案。我用了一个插件。 它允许我将js代码插入iframe,这样我就可以使用消息API与页面上的代码进行交互。示例:

  • 防止在父窗口中运行代码:
    if(window.top==window.self)返回
  • 从主窗口接收到内容:
    window.addEventListener('message',yourHandlerHere,false)
  • 将内容发布到主窗口:
    window.parent.postMessage(yourDataHere)

页面和iframe在同一个站点上吗?@Grumpy不,它们不是。我更新了问题说明,谢谢!您不应该将此类工具编写为普通HTML页面,而应该编写为浏览器扩展。(但话说回来,许多检查CSS规则的工具已经存在。)