Aby umożliwić treści aplikacji bezpieczne odwoływanie się do skryptów treści załadowanej spoza katalogu instalacyjnego aplikacji, można użyć elementów
frame
lub
iframe
w celu załadowania treści aplikacji do tego samego obszaru izolowanego zabezpieczeń co zewnętrzna treść. Jeśli odwoływanie się do skryptów zdalnej treści nie jest konieczne, ale nadal istnieje potrzeba ładowania strony aplikacji spoza obszaru izolowanego aplikacji, można użyć tej samej techniki, określając jako domenę początkową
http://localhost/
lub inną bezpieczną wartość.
Środowisko AIR dodaje nowe atrybuty
sandboxRoot
i
documentRoot
do elementu ramki, które umożliwiają określanie, czy plik aplikacji załadowany do ramki powinien być odwzorowywany w nieaplikacyjnym obszarze izolowanym. Pliki, których ścieżka wskaże adres poniżej adresu URL
sandboxRoot
załadowane zostaną z katalogu określonego w atrybucie
documentRoot
. Ze względów bezpieczeństwa treść aplikacji załadowana w ten sposób traktowana jest tak, jakby rzeczywiście została załadowana z adresu URL określonego we właściwości
sandboxRoot
.
Właściwość
sandboxRoot
określa adres URL w celu użycia do określania obszaru izolowanego i domeny, w której umieszczana jest treść ramki. Należy użyć schematów URL:
file:
,
http:
lub
https:
. Jeśli określony zostanie względny adres URL, treść pozostanie w obszarze izolowanym aplikacji.
Właściwość
documentRoot
określa katalog, z którego ładowana jest treść ramki. Należy użyć schematów URL:
file:
,
app:
lub
app-storage:
.
Poniższy przykład odwzorowuje treść zainstalowaną w podkatalogu
sandbox
aplikacji w celu uruchomienia w zdalnym obszarze izolowanym oraz domenie
www.example.com
:
<iframe
src="http://www.example.com/local/ui.html"
sandboxRoot="http://www.example.com/local/"
documentRoot="app:/sandbox/">
</iframe>
Strona
ui.html
może załadować plik javascript z lokalnego folderu
sandbox
za pomocą następujących znaczników script:
<script src="http://www.example.com/local/ui.js"></script>
Może załadować także treść z katalogu na zdalnym serwerze za pomocą znacznika script, co ilustruje poniższy przykład:
<script src="http://www.example.com/remote/remote.js"></script>
Adres URL określony we właściwości
sandboxRoot
będzie maskował każdą treść dla tego samego adresu URL na zdalnym serwerze. W powyższym przykładzie nie jest możliwy dostęp do żadnej zdalnej treści na stronie
www.example.com/local/
(ani do żadnego jej podkatalogu), ponieważ środowisko AIR ponownie odwzorowuje żądanie na lokalny katalog aplikacji. Żądania są ponownie odwzorowywane niezależnie od tego czy kierowane są z elementów nawigacji strony (XMLHttpRequest) czy zostały utworzone przez inne środki ładowania treści.