javascript - page - w3school web site




Ricarica un iframe con jQuery (12)

Ho due iframe su una pagina e uno apporta modifiche all'altro ma l'altro iframe non mostra la modifica finché non aggiorno. C'è un modo semplice per aggiornare questo iframe con jQuery?

<div class="project">
  <iframe id="currentElement" class="myframe" name="myframe" src="http://somesite.com/something/new"></iframe>
</div>

// aggiorna tutti gli iframe sulla pagina

var f_list = document.getElementsByTagName('iframe');

 for (var i = 0, f; f = f_list[i]; i++) {
                            f.src = f.src;
                        }

Basta contraccambiare la risposta di Alex ma con jQuery

var currSrc = $("#currentElement").attr("src");
$("#currentElement").attr("src", currSrc);

Devi usare

[0] .src

per trovare la fonte dell'iframe e il suo URL deve essere nello stesso dominio del genitore.

setInterval(refreshMe, 5000);
function refreshMe() {
    $("#currentElement")[0].src = $("#currentElement")[0].src;   
}

Ecco un altro modo

$( '#iframe' ).attr( 'src', function () { return $( this )[0].src; } );

Risolto! Mi registro a Stockoverflow solo per condividere l'unica soluzione (almeno in ASP.NET/IE/FF/Chrome) che funziona! L'idea è di sostituire il valore innerHTML di un div con il suo valore innerHTML corrente.

Ecco lo snippet HTML:

<div class="content-2" id="divGranite">
<h2>Granite Purchase</h2>
<IFRAME  runat="server" id="frameGranite" src="Jobs-granite.aspx" width="820px" height="300px" frameborder="0" seamless  ></IFRAME>
</div>

E il mio codice Javascript:

function refreshGranite() {           
   var iframe = document.getElementById('divGranite')
   iframe.innerHTML = iframe.innerHTML;
}

Spero che questo ti aiuti.


Se l'iframe non si trovava su un dominio diverso, puoi fare qualcosa del genere:

document.getElementById(FrameID).contentDocument.location.reload(true);

Ma poiché l'iframe si trova su un dominio diverso, ti verrà negato l'accesso alla proprietà contentDocument dell'iframe tramite la politica della stessa origine .

Tuttavia, è possibile forzare in modo hackerato l'iframe tra domini per ricaricare se il codice è in esecuzione sulla pagina padre dell'iframe, impostando l'attributo src su se stesso. Come questo:

// hackishly force iframe to reload
var iframe = document.getElementById(FrameId);
iframe.src = iframe.src;

Se stai provando a ricaricare l'iframe da un altro iframe, sei sfortunato, non è possibile.


Sono abbastanza sicuro che tutti gli esempi precedenti ricarichino solo l'iframe con il suo src originale, non il suo attuale URL.

$('#frameId').attr('src', function () { return $(this).contents().get(0).location.href });

Questo dovrebbe ricaricare usando l'url corrente.


Sotto la soluzione funzionerà sicuramente:

window.parent.location.href = window.parent.location.href;

puoi anche usare jquery. Questo è lo stesso che Alex ha proposto usando JQuery:

 $('#currentElement').attr("src", $('#currentElement').attr("src"));

Ricarica un iframe con jQuery

crea un collegamento all'interno dell'iframe, diciamo con id = "ricarica", quindi usa il seguente codice

$('#reload').click(function() {
    document.location.reload();
});

e sei a posto con tutti i browser.

Ricarica un iframe con HTML (nessun req di Java Script).

Ha una soluzione più semplice: che funziona senza javaScript in (FF, Webkit)

costruisci un'ancora al lato del tuo iframe

   <a href="#" target="_SELF">Refresh Comments</a>

Quando fai clic su questo ancoraggio, aggiorna semplicemente l'iframe

Ma se hai i parametri inviati al tuo iframe, fallo come segue.

  <a id="comnt-limit" href="?id=<?= $page_id?>" target="_SELF">Refresh Comments</a>

non è necessario alcun URL di pagina perché -> target = "_ SELF" lo fa per te


$( '#iframe' ).attr( 'src', function ( i, val ) { return val; });

$('IFRAME#currentElement').get(0).contentDocument.location.reload()




iframe