L'attributo
documentRoot
specifica la directory locale da cui caricare gli URL che vengono risolti ai file nel percorso specificato da
sandboxRoot
.
Quando si risolvono gli URL, sia nell'attributo
src
del frame che nel contenuto caricato nel frame stesso, la parte di URL che corrisponde al valore specificato in
sandboxRoot
viene sostituita dal valore specificato in
documentRoot
. Pertanto, nel seguente tag del frame:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"/>
child.html
viene caricato dalla sottodirectory
sandbox
della cartella di installazione dell'applicazione. Gli URL relativi in
child.html
vengono risolti in base alla directory
sandbox
. Si noti che i file sul server remoto all'indirizzo
www.example.com/air
non sono accessibili nel frame, dal momento che AIR tenta di caricarli dalla directory app:/sandbox/.
Specifica un gestore eventi per l'evento
dominitialize
di un frame. Si tratta di un evento specifico di AIR che viene attivato quando gli oggetti window e document del frame sono stati creati, ma prima che tutti gli script siano stati analizzati o i documenti creati.
Il frame
dominitialize
invia l'evento abbastanza presto nella sequenza di caricamento, in modo che tutti gli script della pagina secondaria possano far riferimento a oggetti, variabili e funzioni aggiunte al documento secondario dal gestore
dominitialize
. La pagina principale deve trovarsi nella stessa sandbox dell'elemento secondario per aggiungere o accedere direttamente a qualsiasi oggetto in un documento secondario. Un elemento principale nella sandbox dell'applicazione, tuttavia, è in grado di stabilire un bridge sandbox per comunicare con il contenuto di una sandbox non dell'applicazione.
Negli esempi che seguono è illustrato l'utilizzo del tag iframe in AIR:
Collocate
child.html
in una sandbox remota, senza mapparlo a un dominio reale su un server remoto:
<iframe src="http://localhost/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://localhost/air/"/>
Collocate
child.html
in una sandbox remota, consentendo XMLHttpRequests solo a
www.example.com
:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"/>
Collocare
child.html
in una sandbox remota, consentendo XMLHttpRequests a qualsiasi dominio remoto:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"
allowCrossDomainXHR="allowCrossDomainXHR"/>
Collocate
child.html
nella sandbox locale con file system:
<iframe src="file:///templates/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="app-storage:/templates/"/>
Collocate
child.html
in una sandbox remota utilizzando l'evento
dominitialize
per stabilire un bridge sandbox:
<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>
Nel seguente documento
child.html
il contenuto secondario può accedere al bridge sandbox principale:
<html>
<head>
<script>
document.write(window.parentSandboxBridge.testProperty);
</script>
</head>
<body></body>
</html>
Per ulteriori informazioni, vedete
Scambio di script per il contenuto presente in sandbox di sicurezza diverse
e
Sicurezza HTML in Adobe AIR
.