通过一个按钮根据变量“id”刷新多个 iframe

Posted

技术标签:

【中文标题】通过一个按钮根据变量“id”刷新多个 iframe【英文标题】:refresh multiple iframes based on a variable "id" from one button 【发布时间】:2011-08-15 02:25:21 【问题描述】:

我有一个页面上有多个 iframe 的 php 页面。

如果您愿意,这些 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();

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

【问题讨论】:

【参考方案1】:

只需分配不同的id并调用

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

多次,每次要重新加载的每个 iFrame 一次。

【讨论】:

【参考方案2】:
/* 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' );

【讨论】:

【参考方案3】:

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

或者,如果您正在重新加载 ALL 帧,您可以使用这个:

for(var i=0;i<window.frames.length;i++)
  window.frames[i].location.reload();

【讨论】:

【参考方案4】:

这就是我最终使用的,效果很好!我制作的 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();    


感谢所有帮助,希望这也可以帮助别人。!

【讨论】:

以上是关于通过一个按钮根据变量“id”刷新多个 iframe的主要内容,如果未能解决你的问题,请参考以下文章

如何让iframe动态改变,单是却不刷新父页

一个页面里面嵌套了多个iframe,iframe刷新的问题

单页面使用多个编辑器

如何通过单击另一个 iframe 内的按钮更改 iframe 的源?

jquery实现无刷新显示页面内容

iframe嵌入的子页面如何刷新父窗口