event create contentwindow content javascript dom iframe javascript-events

create - Espera a que iframe se cargue en JavaScript



javascript event dom (3)

Estoy abriendo un iframe en JavaScript:

righttop.location = "timesheet_notes.php";

y luego quieren pasarle información:

righttop.document.notesform.ID_client.value = Client;

Sin embargo, obviamente, esa línea no funcionará hasta que la página se haya cargado completamente en el iframe, y ese elemento del formulario esté allí para escribir.

Entonces, ¿cuál es la forma mejor / más eficiente de abordar esto? Algún tipo de bucle de tiempo de espera? Idealmente, realmente me gustaría mantenerlo todo contenido dentro de este script en particular, en lugar de tener que agregar cosas adicionales a la página que se está abriendo.


En primer lugar, creo que se supone que debes afectar la propiedad src de iframes, no la location . En segundo lugar, enganche el evento de load del iframe para realizar sus cambios:

var myIframe = document.getElementById(''righttop''); myIframe.addEventListener("load", function() { this.contentWindow.document.notesform.ID_client.value = Client; }); myIframe.src = ''timesheet_notes.php'';

Nuevamente, todo esto supone que te refieres al marco, no a los conjuntos de marcos.


Supongo que puedes hacerlo fácilmente con jQuery ... jQuery Home Simplemente engancha la página a la $ function () jQuery $ function () ... p. Ej.

$(document).ready(function() { $(''iframe'').load(function() { // write your code here.... }

Eche un vistazo rápido al ejemplo del cargador de archivos aquí: Uso de iframes para múltiples cargas de archivos ...


prueba este

$(''iframe'').each(function() { $(this).ready(function() { $(''#result'').html("ready"); }); });