4 Stimmen

mehrere Iframes auf der Grundlage einer Variablen "id" von einer Schaltfläche aktualisieren

Ich habe eine php-Seite, die mehrere iframes auf der Seite hat.

diese iframes enthalten eine Schaltfläche, wenn Sie so wollen. Wenn jemand auf die "Schaltfläche" im feuern Javascript einen anderen Rahmen auf der Seite mit id=xxx dies funktioniert gut zu aktualisieren. das Problem ist, ich möchte in der Lage sein, mehrere Rahmen auf der Seite zu aktualisieren, die sie alle nicht den gleichen ID-Wert haben, so wie könnte dies getan werden.

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

Dies funktioniert auf einem einzigen iframe (ich weiß, Sie können nicht mehrere ids das gleiche auf einem Dokument haben.) Die Idee ist, wollen so etwas wie dieses zu tun.

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

Entschuldigung für das schlampige Beispiel, ich bin schon viel zu lange wach :)

3voto

theduke Punkte 2896

Weisen Sie einfach verschiedene IDs zu und rufen Sie

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

mehrfach, jeweils einmal für jeden iFrame, den Sie neu laden wollen.

2voto

scunliffe Punkte 60080

Sie haben zwei Möglichkeiten: Entweder Sie iterieren über alle Id's und laden jede nach Bedarf neu...

Oder wenn Sie nachladen ALLE Rahmen, können Sie dies verwenden:

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

1voto

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

0voto

Neil Ecker Punkte 55

Dies ist, was ich schließlich verwendet, und es funktioniert großartig! Ich machte den iframe wie folgt:

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

Dann konnte ich den folgenden Code verwenden, um alle Iframes mit demselben Namen zu erhalten und sie in einer Schleife zu aktualisieren.

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

Vielen Dank für die Hilfe, ich hoffe, das kann auch jemandem helfen!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X