【问题标题】:Accessing IFrame elment from external page loaded inside iFrame从 iFrame 中加载的外部页面访问 IFrame 元素
【发布时间】:2012-12-24 15:01:17
【问题描述】:

我想使用 JavaScript 从 IFrame 源页面访问主页中可用的 IFrame 元素

这是我的主页

<html>
<body>
<IFrame id="page-container" src="http://stackoverflow.com"
      width="200px" height="200px">
</IFrame>
</body>
</html>

子页面

 <html>
   <head>
   <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"/>
   <script type="text/javascript" >
   $(document).ready(function(){
    var containerFrame= $('#page-container');
    //var containerFrame=document.frames["page-container"];
    //var containerFrame=document.frames["page-container"];
    //var containerFrame=document.parent.frames["page-container"];
   });
   </script>

   <body>
   <div>some content..</div>
   </body>
   </html>

我的所有尝试都得到 undefined

怎么做?有可能吗?

编辑:我尝试加载跨域页面

在 IE 中,我收到错误“出于安全原因,不允许使用框架”,而且 域、协议和端口必须匹配。我们能以任何方式实现这一目标吗?

【问题讨论】:

    标签: javascript jquery html dom iframe


    【解决方案1】:
    var containerFrame = $('#page-container', window.parent.document)
    

    这应该首先引用窗口的父级,然后查找 iframe div

    【讨论】:

    • 我尝试加载跨域页面。但是得到一个错误。可能吗?请查看我的更新答案
    • 不抱歉,浏览器不允许不同域的 iframe 互相调用函数,这是一个安全问题
    【解决方案2】:

    您需要指定在其中搜索#page-container 的上下文,在这种情况下将是父窗口。

    var containerFrame = $('#page-container', window.parent.document);
    

    【讨论】:

    • @Murali 没问题,很乐意提供帮助。不要忘记接受答案。去 jye265 的,因为他第一次得到他的 :)
    • 我立即开始尝试接受答案,但 SOF 说“您可以在 6 分钟内接受答案”。只是等待:)
    • 我尝试加载跨域页面。但是得到一个错误。可能吗?请查看我的更新答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多