Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 30秒后重新加载几个iframe_Javascript_Iframe - Fatal编程技术网

Javascript 30秒后重新加载几个iframe

Javascript 30秒后重新加载几个iframe,javascript,iframe,Javascript,Iframe,我有一个包含多个iFrame的页面,我需要一个脚本在30秒后重新加载iFrame。到目前为止,我只发现只适用于iframe的脚本,而另一个脚本不会刷新。有没有办法同时重新加载几个 编辑:不需要超时 $(function() { setInterval(refreshiframe, 5000); }); function refreshiframe() { $('#testframe').attr('src', $('#testframe').attr('src')); } 其

我有一个包含多个iFrame的页面,我需要一个脚本在30秒后重新加载iFrame。到目前为止,我只发现只适用于iframe的脚本,而另一个脚本不会刷新。有没有办法同时重新加载几个

编辑:不需要超时

$(function() {
    setInterval(refreshiframe, 5000);
});

function refreshiframe() {
    $('#testframe').attr('src', $('#testframe').attr('src'));
}

其实很简单

function refreshiFrames(selectors){
    //selectors is an array, it could be --  var selectors = ["#abc",".xyz"];  to get all the iframes that have Id "abc" or class "xyz"

    for(let i =0; i<selectors.length; i++){
        let iframes = document.querySelectorAll(selectors[i]);
        for (let j =0; j<iframes.length; j++){
             iframes[j].src = iframes[j].src;
        }
    }
}
函数刷新框架(选择器){
//选择器是一个数组,它可以是--var选择器=[“#abc”、“.xyz”];以获取Id为“abc”或类为“xyz”的所有iframe

对于(设i=0;i重新加载所有
iFrame

let iFrames = document. getElementsByTagName('iframe');

for (let i = 0; i < iFrames.length; i++){
  iFrames[i].src = iFrames[i].src;
}
按id重新加载一个
iframe

let iFrame = document.getElementById('element-id');
iFrame.src = iFrame.src;

[…document.queryselectoral('iframe')].forEach(i=>i.contentWindow.location.reload());
您可以发布您已经尝试过的内容吗?OP不会要求每30秒重新加载一次-应该是
设置超时()
除非另有说明。他没有指定。因此,是的,如果他只需要刷新一次,则设置超时。是否可以仅刷新带有id或名称标记的特定iFrame?我在哪里编辑长度3000,其中0为30秒?以及class=“element class”进入iframe还是div?@Hardi,我有一个可以重新加载所有的
iframe
和一定的时间。它对代码进行了注释,以帮助了解那里发生的事情。让我知道这是否有帮助!很好,但在我的代码中,如果将一个类添加到多个iframe中,它只对一个有效。而且它不应该有超时。它应该继续自动刷新。如果需要刷新,在JSFIDLE的第9行,将swap out
setTimeout
替换为
setInterval
。这将使其每3秒循环一次,而不是等待3秒后触发一次。
let iFrame = document.getElementById('element-id');
iFrame.src = iFrame.src;