通过一个按钮根据变量“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的主要内容,如果未能解决你的问题,请参考以下文章