обновить несколько iframes на основе переменной «id» с одной кнопки

#php #javascript #iframe #refresh

#php #javascript #iframe #обновить

Вопрос:

У меня есть страница php, на которой есть несколько iframes на странице.

эти фреймы содержат кнопку, если хотите. Когда кто-то нажимает на «кнопку», я запускаю javascript, чтобы обновить другой фрейм на странице с id = xxx, это работает нормально. проблема в том, что я хочу иметь возможность обновлять несколько фреймов на странице, все они не могут иметь одинаковое значение ID, так как же это можно сделать.

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

Это работает с одним iframe (я знаю, что у вас не может быть нескольких одинаковых идентификаторов в одном документе.) Идея в том, чтобы сделать что-то вроде этого.

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

Извините за неаккуратный пример, я слишком долго не спал. 🙂

Ответ №1:

Просто назначьте разные идентификаторы и вызовите

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

несколько раз, по одному разу для каждого iFrame, который вы хотите перезагрузить.

Ответ №2:

У вас есть два варианта, либо выполнить итерацию по всем идентификаторам, перезагружая каждый по мере необходимости…

Или, если вы перезагружаете ВСЕ фреймы, вы можете использовать это:

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

Ответ №3:

 /* 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' );
  

Ответ №4:

Это то, что я в конечном итоге использовал, работает отлично! Я создал iframe следующим образом:

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

Затем я смог использовать приведенный ниже код, чтобы получить все iframes с одинаковым именем и выполнить цикл обновления каждого из них.

 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();    
}
}
  

Спасибо за всю помощь, надеюсь, это тоже кому-нибудь поможет.!