如何刷新在iframe中打开的页面(在x秒后)?

时间:2019-05-09 15:16:46

标签: javascript angularjs iframe

我在iFrame中打开了一个页面。我想在x秒后刷新页面(x可以是大于5的任何数字)。我该怎么做?

这是我的代码;

<iframe sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts" class="iframe" ng-show="$ctrl.getFrameURL() !== 'Default URL'" ng-src="{{$ctrl.getFrameURL()}}" width="100%" height="100%" scrolling="yes" frameBorder="0" id="remotePageFrame"></iframe>

我已经检查了StackOverflow上的一些问题,这些问题是通过更新范围重新加载页面的。我不想更新范围,因为我的范围变量中的URL值保持不变。 JavaScript或AngularJs中是否有任何内容可以帮助刷新iframe中的页面。

更新1

@sarvon ks建议的解决方案适用于项目页面中托管的我自己的页面,但是当我尝试刷新任何外部/第三方页面时会抱怨。在我的页面中,我在iFrame上有一个循环,可打开多个页面。它们大多数是外部页面。对于外部页面,我收到了Uncaught SecurityError异常。

-- Uncaught SecurityError: Blocked a frame with origin "http://localhost:63342" from accessing a cross-origin frame.

此错误已经在existing question中进行了很好的讨论。还有其他解决方法来刷新在iFrame中打开的页面吗?

1 个答案:

答案 0 :(得分:0)

检查此代码,它将起作用


    var duration = 100;
    function reloadIframe() {
          var iframeDome = document.getElementsByTagName("iframe");
            iframeDome[0].contentWindow.location.reload();
    }

    setInterval(reloadIframe,duration);

    <iframe src="https://www.google.com"></iframe>