El atributo
documentRoot
especifica el directorio local del cual cargar las URL que se resuelven en archivos en el lugar especificado en
sandboxRoot
.
Al resolver las URL, sea en el atributo
src
del fotograma o en contenido cargado en el fotograma, la parte de la URL que coincide con el valor especificado en
sandboxRoot
se sustituye por el valor especificado en
documentRoot
. Por lo tanto, en la siguiente etiqueta de fotograma:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"/>
child.html
se carga desde el subdirectorio
sandbox
de la carpeta de instalación de la aplicación. Las URL relativas en
child.html
se resuelven partiendo de la base del directorio
sandbox
. Obsérvese que no se tiene acceso desde el fotograma a los archivos que se encuentren en el servidor remoto en
www.example.com/air
, puesto que AIR intentaría cargarlos desde el directorio app:/sandbox/.
Especifica un controlador de eventos para el evento
dominitialize
de un fotograma. Este evento es específico de AIR y se activa cuando se han creado los objetos de ventana y de documento del fotograma, pero antes de que se hayan analizado los scripts o creado los elementos de documento.
El fotograma distribuye el evento
dominitialize
lo bastante temprano en la secuencia de carga para que todo script en la página secundaria pueda hacer referencia a los objetos, variables y funciones que añada al documento secundario el controlador del evento
dominitialize
. Para poder añadir o tener acceso a los objetos de un documento secundario, la página principal debe encontrarse en el mismo entorno limitado que la página secundaria. No obstante, una página principal que esté en el entorno limitado de la aplicación puede establecer un puente de entorno limitado para tener comunicación con el contenido de un entorno limitado externo.
Los ejemplos siguientes muestran el uso de la etiqueta iframe en AIR:
Para colocar el documento
child.html
en un entorno limitado remoto sin asignarlo a un dominio real en un servidor remoto:
<iframe src="http://localhost/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://localhost/air/"/>
Para colocar el documento
child.html
en un entorno limitado remoto y habilitar las peticiones del tipo XMLHttpRequests solamente a
www.example.com
:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"/>
Para colocar el documento
child.html
en un entorno limitado remoto y habilitar las peticiones del tipo XMLHttpRequests a cualquier dominio remoto:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"
allowCrossDomainXHR="allowCrossDomainXHR"/>
Para colocar el documento
child.html
en un entorno limitado local con sistema de archivos:
<iframe src="file:///templates/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="app-storage:/templates/"/>
Para colocar el documento
child.html
en un entorno limitado remoto, utilizando el evento
dominitialize
para establecer un puente de entorno limitado:
<html>
<head>
<script>
var bridgeInterface = {};
bridgeInterface.testProperty = "Bridge engaged";
function engageBridge(){
document.getElementById("sandbox").parentSandboxBridge = bridgeInterface;
}
</script>
</head>
<body>
<iframe id="sandbox"
src="http://www.example.com/air/child.html"
documentRoot="app:/"
sandboxRoot="http://www.example.com/air/"
ondominitialize="engageBridge()"/>
</body>
</html>
El siguiente documento
child.html
muestra cómo el contenido secundario puede acceder al puente de entorno limitado principal:
<html>
<head>
<script>
document.write(window.parentSandboxBridge.testProperty);
</script>
</head>
<body></body>
</html>
Para obtener más información, consulte
Uso de scripts entre contenidos en diferentes entornos limitados de seguridad
y
Seguridad HTML en Adobe AIR
.