【问题标题】:Javascript getting body tag from page inside iframeJavascript从iframe内的页面获取body标签
【发布时间】:2013-10-05 06:03:10
【问题描述】:

所以这是我的身体,里面是一个 iframe,它也有自己的身体。

<body>
<div id="container_container"> 
<div id="header_container">
    <div id="logo_container"><br>
        <div id="auth">

        </div>
    </div>

</div> 

<div id="content_container">

    <div id="main_container">

        <div id="graphs_bom_container">
            <div id="form_upload"></div>

            <iframe id='my_iframe' name='my_iframe' src="" >
            <html>
            <head></head>
            <body>


            </body>
            </html>
            </iframe>
        </div>
    </div>
</div> 

</div> 
</body>

因此,如果我从控制器返回到 iframe(向其写入内容),然后我想更改顶部“body”标签的背景图像,而不是 iframe 的那个。我可以更改 iframe 上主体的背景图像,但不能更改上面的主体标签。

这就是我所拥有的:

 document.body.style.backgroundImage='url(images/test.jpg)';;

因此,这会更改 iframe 正文标记,但我想到达整个页面顶部的较高正文标记。有什么建议么?并且只需要使用 javascript 没有 jquery 来做到这一点。

请记住,我是从臭名昭著的 ajax iframe 文件上传返回到 iframe。文件上传(本例中为图片)完成后,应更改当前页面的背景。

【问题讨论】:

  • document.getElementById('body') 你确定???
  • 获取你想要的iframe的父文档window.parent.document
  • @PatrickEvans 可能有用。将再次测试,但这似乎是答案。请随意将其写为下面的答案。

标签: javascript jquery html zend-framework iframe


【解决方案1】:

如果你这样做

    document.body.style.backgroundImage='url(images/test.jpg)';

然后它将设置整个页面的背景图像,包​​括 iframe 正文标签。 您可以做的一件事是再次将 iframe 的 body 标记的背景颜色更改为默认的白色。

   window.frames[0].document.getElementsByTagName("body")[0].style.backgroundColor="white";

【讨论】:

    【解决方案2】:
    var iframe = document.getElementById('my_iframe');
    

    并且要获取您可以使用的内容文档:

    var contDoc = iframe.contentDocument || iframe.contentWindow.document;
    contDoc.style.backgroundImage='url(images/test.jpg)';
    

    【讨论】:

    • 当 iframe 为空时返回。请记住,我从臭名昭著的 ajax iframe 文件上传返回到 iframe。文件上传(在这种情况下为图像)完成后,它应该更改当前页面的背景。
    猜你喜欢
    • 2010-12-06
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多