Muchas personas siempre han tenido la idea de que sería fantástico poder operar iframes como quisieran. De esta manera, las páginas estáticas tienen la capacidad de implementar un diseño unificado de varias páginas equivalente a incluir y requerir en segundo plano páginas dinámicas php, jsp y asp.
Con la ayuda de Javascript, podemos cargar dinámicamente el contenido de la página html a la que apunta el atributo del objeto iframe src como fondo. Dicha operación requiere proporcionar dos páginas, una página es la página donde se encuentra el iframe ( nombre de la página: iPage.html ) y la otra página es la página a la que apunta el atributo iframe src ( nombre de la página: srcPage.html ).
iPage.html, dom en <cuerpo>:
,<body>in
Analicemos cómo operar las dos páginas anteriores con JS en IE y luego analice el método de Firefox y finalmente proporcione la compatibilidad con IE y Firefox. El método del navegador para operar el objeto iframe.
Todo el mundo sabe que iframe es una etiqueta HTML no estándar. Es una etiqueta de diseño múltiple lanzada por el navegador IE. Más tarde, Mozilla también admitió esta etiqueta. (Chismes, jeje)
1. IE lo obtiene a través de document.frames ["IframeName"]. Ejemplo: generamos el contenido
Encontrará que agregar código a la página no parece generar el contenido deseado. ¿Por qué? Aún no he descubierto esto. Habitualmente agrego window.onload y aparecerá el resultado (Nota: el código JS está escrito en este evento). ¿Alguien que sepa al respecto puede informarme? ¿Por qué? Después del cambio, el código aparece en IE, pero document.frames no está definido en Firefox. Mensaje de error:
2. es decir, otra forma es contentWindow para obtenerlo, código
de ie6, ie7, firefox2.0 y firefox3.0. oye oye. (Después de verificar en línea, encontré una vulnerabilidad de desbordamiento de búfer en Mozilla Firefox iframe.contentWindow.focus, que presenta el riesgo de ataques de inyección de script.
Más tarde escuché que esto se podía evitar en segundo plano y me sentí aliviado. Sin embargo, todavía Espero que la nueva versión de Firefox pueda resolverlo. Qué
peligro
accede a él a través de contentWindow Los nodos son los mismos que antes.
Mozilla admite el estándar W3C para acceder al objeto de documento de un iframe a través de IFrameElmRef.contentDocument . A través del estándar, puede escribir un documento menos, código:
está disponible un método compatible con estos dos navegadores, que consiste en utilizar el método contentWindow.
¡Oye, oye! ¿Puedo operar el iframe como deseo? Si aún te sientes incómodo, puedes incluso reescribir el contenido en el iframe.
A través de designMode (configurando el documento en modo de diseño editable) y contentEditable (configurando el contenido en editable), puede reescribir el contenido en el iframe. Código:
Para obtener información sobre estos dos objetos, consulte: http://msdn.microsoft.com/en- us/library/ms533720(VS.85).aspx
firebug prueba el rendimiento del código anterior, como se muestra en la figura
Comente iObj.document.designMode = 'On';
iObj.document.contentEditable
= true;
El efecto no ha cambiado y la eficiencia del tiempo es casi tres veces mayor que antes de la anotación. oye oye. Esos dos objetos se refieren a los métodos de escritura de algunas personas en Internet para reescribir el contenido en el iframe. De hecho, no es necesario utilizar designMode y contentEditable a menos que existan otras necesidades.
Con los principios anteriores, es bastante sencillo implementar esto, simplemente establezca el valor de altura del iframe al valor de altura del documento dentro de él. Código
debido a este término técnico web, ¡oye, apestoso!
Materiales de referencia:
https://developer.mozilla.org/cn/Migrate_apps_from_Internet_Explorer_to_Mozilla
http://msdn.microsoft.com/en-us/library/ms533690(VS.85).aspx
http://www.kuqin.com/ diseño de página web/20080516/8536.html