Per consentire lo scambio di script del contenuto dell'applicazione dall'esterno della directory di installazione dell'applicazione, potete usare gli elementi
frame
o
iframe
per caricare il contenuto dell'applicazione nella stessa sandbox di sicurezza del contenuto esterno. Se non dovete eseguire lo scambio di script di contenuto remoto, ma desiderate comunque caricare una pagina dell'applicazione all'esterno della sandbox dell'applicazione, potete usare la stessa tecnica indicando
http://localhost/
, o un altro valore sicuro, come dominio di origine.
AIR aggiunge i nuovi attributi,
sandboxRoot
e
documentRoot
, all'elemento frame che consente di stabilire se il file di un'applicazione caricato nel frame deve essere mappato su una sandbox non dell'applicazione. I file che risolvono un percorso sotto l'URL
sandboxRoot
sono invece caricati dalla directory
documentRoot
. Per ragioni di sicurezza, il contenuto dell'applicazione caricato in questo modo viene trattato come se fosse realmente caricato dall'URL
sandboxRoot
.
La proprietà
sandboxRoot
specifica l'URL da usare per determinare la sandbox e il dominio in cui collocare il contenuto dell'elemento frame. È necessario usare gli schemi URL
file:
,
http:
o
https:
. Se specificate un URL relativo, il contenuto rimane nella sandbox dell'applicazione.
La proprietà
documentRoot
specifica la directory da cui caricare il contenuto dell'elemento frame. È necessario usare gli schemi URL
file:
,
app:
o
app-storage:
.
Nell'esempio seguente, il contenuto installato nella sottodirectory della
sandbox
dell'applicazione viene mappato in modo che sia eseguito nella sandbox remota e nel dominio
www.example.com
:
<iframe
src="http://www.example.com/local/ui.html"
sandboxRoot="http://www.example.com/local/"
documentRoot="app:/sandbox/">
</iframe>
La pagina
ui.html
può caricare un file javascript dalla cartella locale
sandbox
usando il seguente tag script:
<script src="http://www.example.com/local/ui.js"></script>
Può inoltre caricare contenuto da una directory del server remoto usando un tag script simile al seguente:
<script src="http://www.example.com/remote/remote.js"></script>
L'URL
sandboxRoot
nasconderà tutto il contenuto con lo stesso URL sul server remoto. Con l'esempio precedente non potete accedere al contenuto remoto presente in
www.example.com/local/
(e relative sottodirectory) in quanto AIR rimappa la richiesta sulla directory locale dell'applicazione. Le richieste vengono rimappate sia che provengano dalla navigazione della pagina, da un oggetto XMLHttpRequest o da altri strumenti di caricamento del contenuto.