Atrybut
documentRoot
określa katalog lokalny, z którego ładowane są adresy URL wskazujące na pliki w lokalizacji określonej przez
sandboxRoot
.
Podczas odczytywania adresów URL w atrybucie
src
ramki lub w treści załadowanej do ramki część adresu URL zgodna z wartością określoną w
sandboxRoot
jest zastępowana wartością określoną w
documentRoot
. W poniższym znaczniku ramki:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"/>
kod
child.html
jest ładowany z podkatalogu
sandbox
folderu instalacyjnego aplikacji. Względne adresy URL w
child.html
są odczytywane na podstawie katalogu
sandbox
. Pliki z serwera zdalnego
www.example.com/air
nie są dostępne w ramce, ponieważ środowisko AIR podejmuje próby załadowania tych plików z katalogu app:/sandbox/.
Określa moduł obsługi zdarzenia
dominitialize
ramki. To zdarzenie jest właściwe dla środowiska AIR i uruchamiane jest po utworzeniu obiektów window lub document ramki, ale przed analizowaniem skryptów lub utworzeniem elementów dokumentów.
Ramka wywołuje zdarzenie
dominitialize
odpowiednio wcześnie w sekwencji ładowania, aby skrypt na każdej stronie podrzędnej mógł odwoływać się do obiektów, zmiennych i funkcji dodawanych do dokumentu podrzędnego przez moduł obsługi
dominitialize
. Strona nadrzędna musi znajdować się w tym samym obszarze izolowanym co podrzędna — wówczas może bezpośrednio dodawać albo uzyskiwać dostęp do obiektów w dokumencie podrzędnym. Jednak dokument nadrzędny w obszarze izolowanym aplikacji może utworzyć most (obszaru podrzędnego) w celu nawiązania komunikacji z treścią w obszarze izolowanym.
Poniższe przykłady ilustrują użycie znacznika iframe w środowisku AIR:
Umieszczanie dokumentu
child.html
w zdalnym obszarze izolowanym bez odwzorowania do rzeczywistej domeny na serwerze zdalnym:
<iframe src="http://localhost/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://localhost/air/"/>
Umieszczanie dokumentu
child.html
w zdalnym obszarze izolowanym i zezwolenie na generowanie żądań XMLHttpRequest tylko do strony
www.example.com
:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"/>
Umieszczanie dokumentu
child.html
w zdalnym obszarze izolowanym i zezwolenie na generowanie żądań XMLHttpRequest tylko do domeny zdalnej:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"
allowCrossDomainXHR="allowCrossDomainXHR"/>
Umieszczenie dokumentu
child.html
w lokalnym obszarze izolowanym z systemem plików:
<iframe src="file:///templates/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="app-storage:/templates/"/>
Umieszczenie dokumentu
child.html
w zdalnym obszarze izolowanym za pomocą zdarzenia
dominitialize
w celu ustawienia mostu obszaru izolowanego:
<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>
Poniższy dokument
child.html
ilustruje, jak zawartość dokumentu potomnego może uzyskać dostęp do mostu obszaru izolowanego dokumentu macierzystego.
<html>
<head>
<script>
document.write(window.parentSandboxBridge.testProperty);
</script>
</head>
<body></body>
</html>
Więcej informacji zawierają sekcje
Treść odwołująca się do skryptów w różnych bezpiecznych obszarach izolowanych
i
Zabezpieczenia HTML w środowisku Adobe AIR
.