La función del elemento iframe es incrustar un documento dentro de un documento y crear un marco flotante. Muchas personas no entienden muy bien cómo se controla el iframe y básicamente todavía se encuentran en un estado vago de comprensión.
Dos notas sobre los iframes, ifr es el valor ID y NOMBRE de un iframe existente:
El siguiente es un fragmento citado:
document.getElementById(“ifr”);
ventana.frames[“ifr”];
Si desea utilizar la función en el iframe, la variable debe pasar por el segundo método porque requiere un modelo DOM completo (no sé si esto es correcto. El primer método simplemente elimina un OBJETO)
. solo quiero cambiar el src o borde del iframe, el desplazamiento y otros atributos (que no son el mismo concepto que propiedad, la propiedad no se puede escribir en etiquetas, como: scrollHeight, InnerHTML, etc.), debe usar el primer método.
Si desea obtener la página del iframe (no el iframe en sí), debe utilizar el segundo método, porque obtiene un modelo DOM completo. Por ejemplo, si desea obtener el contenido del documento.body del. iframe, solo puede usar el segundo método.
También tenga en cuenta que si la página iframe no está completamente cargada, se producirá un error grave al llamar al modelo DOM del iframe. Por lo tanto, debe preparar un modo tolerante a fallas
. , uno es aa.htm y el otro es bb.htm.
Códigoaa .htm
: El siguiente es un fragmento de cita:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transicional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml " >
<cabeza>
<título>Página sin título</título>
<tipo de estilo="texto/css">
<!--
cuerpo{
margen: 0px;
}
-->
</estilo>
</cabeza>
<cuerpo>
<iframe id="ifr" nombre="ifr" ancho="100%" altura="500" src="bb.htm"></iframe>
</cuerpo>
</html>
<script idioma="javascript" tipo="texto/javascript">
var aa_value="¡Soy una variante en la ventana superior!";
var ifr_id=document.getElementById("ifr");
var ifr_window=ventana.frames["ifr"];
alert("Alerta desde la ventana superior: No se puede obtener la variante del iframe mediante ifr_id, devolverá:" + ifr_id.bb_var);
alert("Alerta desde la ventana superior: No se puede obtener el modelo DOM del iframe mediante ifr_id, devolverá:" + ifr_id.window);
alert("Alerta desde la ventana superior: Obtener src de id:" + ifr_id.src);
alert("Alerta desde la ventana superior: Obtener href desde la ventana:" + ifr_window.document.location.href);
//Dado que es posible que bb.htm aún no esté cargado, la descarga puede provocar un error.
//Llama a la función ifr_window.bb() en el iframe;
//Llamar variables dentro del iframe
alert("Alerta desde la ventana superior: " + ifr_window.bb_var);
//
alert("Alerta desde la ventana superior:" + ifr_window.document.body.innerHTML);
función aa(mensaje){
alert("Estoy alertando desde la ventana superior y recibí un mensaje:n" + msg);
}
</script>
bb.htm
Código: El siguiente es un fragmento citado:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transicional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml " >
<cabeza>
<título>subcuadro</título>
<tipo de estilo="texto/css">
<!--
html,cuerpo{
margen: 0px;
ancho: 90%;
}
-->
</estilo>
</cabeza>
<cuerpo>
¡Soy un subcuadro!
<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...
</cuerpo>
</html>
<script idioma="javascript" tipo="texto/javascript">
var bb_var="Soy una variable en ifr";
funciónbb(){
alert("Alerta de iframe: soy la función de frame ifr")
}
//Obtener las variables de la página principal
alert("Alerta desde iframe parent.ifr_id::" + parent.ifr_id);
alert("Alerta del iframe parent.aa_value: " + parent.aa_value);
//Cambiar la altura del iframe a través del ifr_id de la página principal
alert("Alerta desde iframe: altura del cliente de ifr:" +document.body.clientHeight);
parent.ifr_id.height=document.body.clientHeight;
alert("Alerta desde iframe: altura de desplazamiento de ifr: " + document.body.scrollHeight);
//Llama a la función del formulario padre:
parent.aa("Llamaré a una función que es la ventana superior ");
//Cambiar el título del formulario principal:
alert("Alerta desde iframe: cambiaré el título de la ventana superior");
top.document.title="El valor del título cambió";
//El borde y el desplazamiento cambiaron a través del ifr_id del formulario principal
alert("Alerta desde iframe: cambiaré mi borde y desplazamiento:");
top.ifr_id.border=0;
top.ifr_id.scrolling="no";
</script>