基于变量“id”刷新多个iframe;从一个按钮

refresh multiple iframes based on a variable "id" from one button

本文关键字:iframe 按钮 一个 于变量 变量 id 刷新      更新时间:2023-09-26

我有一个php页面,页面上有多个iframe

如果您愿意,这些iframe包含一个按钮。当有人点击"按钮"时,我触发javascript来刷新页面上的另一个帧id=xxx,这很好。问题是我想要能够刷新页面上的多个帧,他们都不能有相同的ID值,所以这是怎么做到的。

<iframe id="12345"></iframe>
<iframe id="12345"></iframe>
<iframe id="12345"></iframe>

这适用于单个iframe(我知道你不能在一个文档上有多个相同的id)。我们的想法是想做这样的事情。

parent.document.getElementById('12345').contentWindow.location.reload();

很抱歉举了个草率的例子,我醒了太久了。:)

只需分配不同的id并调用

parent.document.getElementById(customId).contentWindow.location.reload();

您有两种选择,要么遍历所有id,根据需要重新加载每个id…

或者如果你正在重新加载所有帧,你可以使用:

for(var i=0;i<window.frames.length;i++){
  window.frames[i].location.reload();
}
/* include in parent */
function reloadIframes( ) {
    var i = argument.length;
    while ( i-- ) {
        document.getElementById( arguments[i] ).contentWindow.location.reload()
    }
}
/* In an iframe (probably in the onclick of your button) */
parent.reloadIframes( 'id1', 'id2' );

这就是我最终使用的,它工作得很好!我创建的iframe如下:

<iframe name="ifwXXXX"></iframe>

然后我可以使用下面的代码来获取所有具有相同名称的iframe,并对它们进行循环刷新。

function refreshwant(ifid,lid){
    parent.document.getElementById('pfid'+lid+'').contentWindow.location.reload();
    var x = parent.document.getElementsByName('ifw'+ifid+'');
for(var i = 0; i < x.length; i++)
{
    x[i].contentWindow.location.reload();    
}
}

感谢所有的帮助,希望这也能帮助别人!