documentRoot
niteliği,
sandboxRoot
tarafından belirtilen konumdaki dosyalara çözülen URL'lerin yükleneceği yerel dizini belirtir.
URL'leri çözerken, kare
src
niteliğinde veya kareye yüklenen içerikte, URL'nin
sandboxRoot
öğesinde belirtilen değerle eşleşen bölümü
documentRoot
öğesinde belirtilen değerle değiştirilir. Bu nedenle aşağıdaki kare etiketinde:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"/>
child.html
, uygulama yükleme klasörünün
sandbox
altdizininden yüklenir.
child.html
içerisindeki göreceli URL'ler,
sandbox
dizini temel alınarak çözülür. AIR, dosyaları app:/sandbox/ dizininden yükleme girişiminde bulunacağı için,
www.example.com/air
adresinde bulunan uzak sunucudaki tüm dosyalara kareden erişilemediğini unutmayın.
Bir karenin
dominitialize
olayının olay işleyicisini belirtir. Bu olay, karenin pencere ve belge nesneleri oluşturulduğunda ancak herhangi bir komut dosyası ayrıştırılmadan veya belge öğeleri oluşturulmadan önce çalışan, AIR'ye özgü bir olaydır.
Kare,
dominitialize
olayını yükleme dizisinde, alt sayfadaki komut dosyaları alt belgeye
dominitialize
işleyicisi tarafından eklenen nesnelere, değişkenlere ve işlevlere başvurmadan önce, yeterince erken bir zamanda gönderir. Bir alt belgeye doğrudan nesne eklemek veya alt belgedeki nesnelere doğrudan erişmek için üst sayfayla alt sayfa aynı sanal alanda bulunmalıdır. Ancak uygulama sanal alanındaki bir üst öğe, uygulama dışı sanal alandaki içerikle iletişim kurmak için sanal alan köprüsü kurabilir.
Aşağıdaki örnekler iframe etiketinin AIR'deki kullanımını gösterir:
child.html
öğesini, uzak sunucudaki gerçek bir etki alanına eşlemeden uzak sanal alana yerleştirin:
<iframe src="http://localhost/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://localhost/air/"/>
child.html
öğesini, XMLHttpRequest'lerinin yalnızca
www.example.com
adresine yapılmasına izin vererek uzak sanal alana yerleştirin:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"/>
child.html
öğesini, XMLHttpRequest'lerinin herhangi bir uzak etki alanına yapılmasına izin vererek uzak sanal alana yerleştirin:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"
allowCrossDomainXHR="allowCrossDomainXHR"/>
child.html
öğesini dosya sistemiyle yerel sanal alana yerleştirin:
<iframe src="file:///templates/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="app-storage:/templates/"/>
child.html
öğesini, sanal alan köprüsü kurmak için
dominitialize
olayını kullanarak uzak sanal alana yerleştirin:
<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>
Aşağıdaki
child.html
belgesi, alt içeriğin üst sanal alan köprüsüne nasıl erişebileceğini gösterir:
<html>
<head>
<script>
document.write(window.parentSandboxBridge.testProperty);
</script>
</head>
<body></body>
</html>
Daha fazla bilgi için, bkz.
Farklı güvenlik sanal alanlarında çapraz komut dosyası içeriği
ve
Adobe AIR'de HTML güvenliği
.