Tengo un editor con un cargador de imágenes múltiples SWF. Como no todos necesitarán cargar imágenes en su artículo, necesito cargar dinámicamente este cargador de imágenes cuando sea necesario. Tengo que cargarlo en un iframe porque el uploader necesita algunos scripts externos para cargarse antes. Y dado que necesito su variable de devolución de llamada para que lo use mi editor, quiero saber si los scripts en el iframe pueden interactuar con los scripts en la página principal. O si no puedo hacer eso, ¿cuál es la forma alternativa de hacer esto?¿Pueden los guiones en iframe interactuar con guiones en la página principal
Respuesta
Si están en el mismo dominio, sí.
El objeto parent
es la ventana primaria del iframe.
Si tuviera una variable a
en el ámbito global de la ventana padre, usted podría manipularlo en el marco flotante como esto:
parent.a = "new value";
mismo modo, si a
es una función en el ámbito global de la matriz ventana, se le puede llamar así:
parent.a(args);
Puede scripts en iframe interactuar con las secuencias de comandos en la página principal
Solo si el iframe y su elemento primario tienen exactamente el mismo dominio, debido a same origin policy (MDC link).
postMessage en Html5, compatible con Internet Explorer 8.0+, Firefox 3.0+, Safari 4.0+, Chrome 1.0+ y Opera 9.5+, así es como lo he estado usando. Si no le importa la falta de soporte en IE7 y versiones anteriores, aquí le mostramos cómo implementarlo.
Javascript en la ventana principal:
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event){
var source = event.source.frameElement; //this is the iframe that sent the message
var message = event.data; //this is the message
//do something with message
}
Javascript en el marco flotante;
var message='hello, big window!'; //could be of any type, string, number, array, object, have fun
window.parent.postMessage(message,'*'); //the '*' has to do with cross-domain messaging. leave it like it is for same-domain messaging.
Por supuesto que podría hacerlo a la inversa, con el envío de mensajes al marco flotante la ventana principal, y pasar un buen diálogo entre la ventana de esa manera.
Si el iframe pertenece a un dominio diferente, pero usted tiene control sobre el contenido, puede comunicarse entre los dos de dos maneras diferentes. Lo más simple es "hablar" a través de pares clave/valor en la URL del iFrame, ya que tanto el padre como el iFrame tienen acceso a eso.
Un enfoque más complicado es utilizar el proxy iFrame, que se describe muy bien aquí: http://www.julienlecomte.net/blog/2007/11/31/ que utiliza Yahoo Pipes para enviar y recibir mensajes bastante bien.
Extender de Andy respuesta Can scripts in iframe interact with scripts in the main page:
Uso jQuery.postMessage complemento http://benalman.com/code/projects/jquery-postmessage/docs/files/jquery-ba-postmessage-js.html
Navegadores probados Internet Explorer 6-8, Firefox 3, Safari 3-4, Chrome, Opera 9.
- 1. Varios guiones con requirejs
- 2. Reemplazar los guiones bajos en la cadena
- 3. de Vim para los identificadores con guiones '-'
- 4. guiones incrustados en imágenes
- 5. Kohana - ¿dónde pones los guiones AJAX?
- 6. Use guiones bajos en lugar de guiones con ActiveResource XML (set: dasherize en falso)
- 7. reemplazando espacios en una cadena con guiones
- 8. ¿Reemplazar espacios con guiones bajos en JavaScript?
- 9. Cartas, números, guiones bajos y guiones bajos Regex
- 10. Strip php variable, reemplace los espacios en blanco con guiones
- 11. Rails nombres de controlador con guiones en lugar de guiones bajos
- 12. iframe click link se abre en la página principal en lugar de en la página iframe
- 13. guiones corredor mono androide
- 14. Útiles guiones F #
- 15. ¿Pueden los guiones de acceso al método `importScripts` de Web Worker guardar en caché el hilo principal?
- 16. ¿Cómo hacer coincidir los guiones con la expresión regular?
- 17. El uso de extracto() con guiones
- 18. Regex ignora guiones bajos
- 19. Clasificación SQL y guiones
- 20. Uso de presentModalViewController con guiones gráficos
- 21. VS2010 - Los guiones se muestran en todos los espacios
- 22. Regex - ¿Se deberían escapar los guiones?
- 23. ¿Es posible obtener la referencia de la página principal de un iFrame con JavaScript en iFrame?
- 24. ¿Cómo paso la información entre los guiones del guión gráfico?
- 25. Los guiones de precompilación de Visual Studio no pueden encontrar archivos exe en windows/system32
- 26. Convertir guiones en CamelCase en PHP
- 27. iOS 5 Implementación de un controlador de página con guiones gráficos en la aplicación existente
- 28. Nombre de la compañía con guiones en los paquetes de Java
- 29. Nombre del comando de referencia con guiones
- 30. Cómo reemplazar mayúsculas con guiones bajos?