首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何强制iFrame在加载后重新加载

问如何强制iFrame在加载后重新加载
EN

Stack Overflow用户
提问于 2011-10-21 15:31:35
回答 4查看 39.9K关注 0票数 5

我有大量的iframes加载特定的内容在我的网页上。父域和iframe都位于相同的域中。

我在iframe中有一个滚动条,它似乎没有在所有浏览器中正确加载。但是当我刷新iframe的时候,它的负载就完美了。我不知道它为什么要这么做。

我使用了元刷新,但我不希望页面不断刷新,只刷新一次。

我正在寻找的解决方案将在打开iFrame后重新加载iFrame内容,并且延迟最小。

编辑

我意识到,在加载索引时,我的页面会加载所有的iframes。iframes出现在一个jQuery覆盖中,它也被加载,但可见性:隐藏直到调用。所以在这个电话里,我会希望iframe被重新加载。

有人能帮我想出一个Javascript函数吗?当我点击指向iFrame的链接时,它会重新加载iFrame吗?我已经很接近了,但是我对js一无所知,而且我一直都很差。我有一个重新加载页面的函数,但我想不出如何只调用一次。

到目前为止,我有这样的看法:

代码语言:javascript
复制
<script type="text/javascript">

var pl;
var change;
pl=1;

function ifr() {

if (pl=1) {
    document.location.reload([true]);
    alert("Page Reloaded!");
    change=1;
    return change;
}

change+pl;

}

​

因此,它基本上使用了document.location.reload,它可以重新加载页面。然后,我尝试将pl更改为1以外的其他内容,这样函数就不会再次运行。我一直用onLoad从身体上给这个JS打电话。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-12-07 21:23:15

所有线索都死了,但我确实找到了一个有效的代码片段。不是我写的,我不记得它是从哪里来的。只是为了帮助别人,如果他们有同样的问题。

代码语言:javascript
复制
<div class="overlay-content"> //Content container needed for CSS Styling
    <div id="Reloader"> 
        //iFrame will be reloaded into this div
    </div>

    //Script to reload the iframe when the page loads
    <script>
        function aboutReload() { 
            $("#Reloader").html('<iframe id="Reloader" height="355px" width="830px" scrolling="no" frameborder="0" src="about.html"></iframe>');
        }
    </script>
</div>

基本上,只在打开带有iFrame的窗口时加载iFrame源,而不是在加载原始页面时加载iFrame。

票数 9
EN

Stack Overflow用户

发布于 2014-01-03 00:51:08

但是,除了最初问题的范围之外,这个jQuery片段可以处理跨域iframe元素,在这些元素中,contentDocument.location.reload(true)方法不会因为沙箱而工作。

代码语言:javascript
复制
//assumes 'this' is the iframe you want to reload.
$(this).replaceWith($(this).clone()); //Force a reload

基本上,它用自己的副本替换了整个iframe元素。我们使用它来强制调整嵌入式第三方“哑”小部件的大小,比如视频播放器没有注意到其大小的变化。

票数 3
EN

Stack Overflow用户

发布于 2011-10-21 15:33:46

在iframe元素本身上设置一个onload:

代码语言:javascript
复制
iframe.onload = function() {this.contentWindow.location.reload(); this.onload = null;};

(只有当iframe的位置位于与主页相同的域中时才能工作)

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

https://stackoverflow.com/questions/7851727

复制
相关文章

相似问题

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