обновить несколько фреймов на основе переменной "id" из одной кнопки - PullRequest
4 голосов
/ 29 апреля 2011

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

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

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

Извините за небрежный пример, я долго проснулся.:)

Ответы [ 5 ]

3 голосов
/ 29 апреля 2011

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

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

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

2 голосов
/ 29 апреля 2011

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

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

for(var i=0;i<window.frames.length;i++){
  window.frames[i].location.reload();
}
1 голос
/ 29 апреля 2011
/* 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' );
0 голосов
/ 30 апреля 2011

Это то, что я в итоге использовал, прекрасно работает! Я сделал 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();    
}
}

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

0 голосов
/ 29 апреля 2011

Это не php, вам просто нужен javascript Посмотрите на это, я думаю, что это то, что вам нужно

Как обновить 2 фрейма одной ссылкой / кнопкой, используя html / js

...