Om toepassingsinhoud veilig te cross-scripten met inhoud die van buiten de installatiemap van de toepassing is geladen, kunt u het element
frame
of
iframe
gebruiken om toepassingsinhoud in dezelfde beveiligingssandbox als de externe inhoud te laden. Als u geen cross-scripting van de externe inhoud nodig hebt maar toch een pagina van uw toepassing buiten de toepassingssandbox wilt laden, kunt u dezelfde techniek gebruiken, waarbij u
http://localhost/
of een andere onschuldige waarde opgeeft als het domein of de oorsprong.
AIR voegt de nieuwe kenmerken
sandboxRoot
en
documentRoot
toe aan het element frame, zodat u kunt bepalen of een toepassingsbestand dat in het frame is geladen, moet worden toegewezen aan een niet-toepassingssandbox. Bestanden met een pad onder de URL
sandboxRoot
worden in plaats daarvan geladen vanuit de map
documentRoot
. Om veiligheidsredenen wordt de toepassingsinhoud die op die manier wordt geladen, behandeld alsof deze vanaf de URL
sandboxRoot
is geladen.
De eigenschap
sandboxRoot
geeft de URL op die moet worden gebruikt om de sandbox en het domein te bepalen waarin de frame-inhoud moet worden geplaatst. Het URL-schema
file:
,
http:
of
https:
moet worden gebruikt. Als u een relatieve URL opgeeft, blijft de inhoud in de toepassingssandbox.
De eigenschap
documentRoot
bepaalt de map waaruit de frame-inhoud moet worden geladen. Het URL-schema
file:
,
app:
of
app-storage:
moet worden gebruikt.
In het volgende voorbeeld ziet u hoe u inhoud die in de submap
sandbox
van de toepassing is geïnstalleerd, toewijst voor uitvoering in de externe sandbox en het domein
www.example.com
:
<iframe
src="http://www.example.com/local/ui.html"
sandboxRoot="http://www.example.com/local/"
documentRoot="app:/sandbox/">
</iframe>
De pagina
ui.html
kan met behulp van de volgende scripttag een JavaScript-bestand laden vanuit de lokale map
sandbox
:
<script src="http://www.example.com/local/ui.js"></script>
Deze pagina kan ook inhoud laden vanuit een map op de externe server met bijvoorbeeld de volgende scripttag:
<script src="http://www.example.com/remote/remote.js"></script>
De URL
sandboxRoot
maskeert alle inhoud op dezelfde URL op de externe server. In het vorige voorbeeld hebt u geen toegang tot externe inhoud op
www.example.com/local/
(of een van de submappen) omdat AIR de aanvraag omleidt naar de lokale toepassingsmap. Alle aanvragen worden omgeleid, ongeacht of ze afkomstig zijn van paginanavigatie, een XMLHttpRequest of een andere manier om inhoud te laden.