En el desarrollo del front-end web, a menudo usamos el control de iframe.
Sin embargo, al controlar las interacciones internas y externas, las palabras clave utilizadas por cada navegador son a menudo diferentes, lo cual es muy problemático. Para obtener el objeto de la ventana en el subsifrado, cada navegador tiene sus propias especificaciones, algunas son ventanas, algunas son contenido y así sucesivamente, y tal vez hay algunos que no sabemos.
Sin embargo, simplemente acceda a la página de la capa principal desde la página del niño, y en el formulario original, todos son ventanas.
Luego, a través de esta función, podemos pasar nuestro propio objeto de ventana a la página principal en la página del niño, para que la página principal pueda acceder fácilmente a la página del niño, y ya no tenemos que preocuparnos por cómo obtener el objeto de la ventana del objeto iframe.
Sin decir una palabra, veamos primero el código:
Código de página principal:
Window.iFrameWindow = null; function frameready (subwindow) {window.iFrameWindow = subwindow; //Asignación}; <iframe src = "xx"> </iframe>Código de subpage:
$ (function () {window.parent.frameready (ventana);});A través del código simple anterior, puede acceder al objeto IframeWindow en la página principal y obtener directamente el objeto de la ventana de la página del niño, que no tiene cerebro y es muy útil.
¿Qué pasa si tengo múltiples iFrames?
Esta situación será un poco más complicada, pero no importa. Queremos continuar usando la solución anterior, así que analicemos la situación actual:
1. Deberíamos necesitar un objeto de colección similar a iframeWindows para administrar los objetos de la ventana para todas las subpáginas.
2. Cuando cada página de niños llama a los padres. Frameready, debe confiar en un nombre único para la página principal, para que podamos acceder con precisión a cada iframe en la página principal.
Entonces es simple ahora. Lo que la subpaga debe hacer no es más que un nombre, número, etc. Veamos el código
Window.subwindowname = "HellowOrldWindow"; $ (function () {Window.Parent.FrameReady (Window.SubWindowname, Window);});Entonces, lo que la página principal debe hacer es refactor de frameready y agregar un parámetro
Window.FrameWindows = {}; // Esto se convierte en una función de objeto frameready (name, window) {window.iFrameWindows [name] = window;}; function getSubwindow (name) {return window.iFrameWindows [name];}Resumir:
Las páginas construidas con este esquema tienen las siguientes ventajas:
1. La interacción de las páginas principales solo depende de las palabras clave principales (y de la manera anterior, no solo dependen de los padres, sino también de ContentWindow, Window y otras palabras clave inciertas. Lo más importante es que el soporte de los padres sigue siendo muy bueno)
2. Objetos de ventana unificados, reduciendo la cadena de referencia solicitada cada vez que se usan y mejorando la velocidad de operación
3. El punto más importante: es que el código es mucho más fácil de escribir.
Lo anterior es la solución a la interacción y la compatibilidad de JavaScript iframe con varios navegadores introducidos por el editor. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!