Attributet
documentRoot
anger den lokala katalogen från vilken det ska läsas in URL:er som löses till filer på den plats som anges av
sandboxRoot
.
När URL:er löses, antingen i bildruteattributet
src
eller i innehåll som läses in till bildrutan, byts den del av URL:en som matchar värdet som anges i
sandboxRoot
ut mot värdet som anges i
documentRoot
. I följande bildrutetagg sker därför följande:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"/>
child.html
läses in från underkatalogen
sandbox
i programmets installationsmapp. Relativa URL:er i
child.html
löses utifrån katalogen
sandbox
. Observera att alla filer på fjärrservern på
www.example.com/air
inte är tillgängliga i bildrutan, eftersom AIR försöker att läsa in dem från katalogen app:/sandbox/.
Anger en händelsehanterare för händelsen
dominitialize
för en bildruta. Den här händelsen är en AIR-specifik händelse som utlöses när fönster- och dokumentobjekten för bildrutan har skapats, men innan några skript har analyserats eller dokumentelement har skapats.
Bildrutan skickar händelsen
dominitialize
tillräckligt tidigt i läsningssekvensen så att alla skript på den underordnade sidan kan referera till objekt, variabler och funktioner som har lagts till i det underordnade dokumentet av
dominitialize
-hanteraren. Den överordnade sidan måste finnas i samma sandlåda som den underordnade för att det ska gå att lägga till eller komma åt objekt direkt i ett underordnat dokument. En överordnad i sandlådan application kan emellertid skapa en sandlådebrygga för att kommunicera med innehåll i andra sandlådor än sandlådan application.
I följande exempel visas hur iframe-taggen används i AIR:
Placera
child.html
i en fjärrsandlåda, utan att mappa till en faktisk domän på en fjärrserver:
<iframe src="http://localhost/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://localhost/air/"/>
Placera
child.html
i en fjärrsandlåda, och tillåt bara XMLHttpRequests till
www.example.com
:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"/>
Placera
child.html
i en fjärrsandlåda, och tillåt bara XMLHttpRequests till valfri fjärrdomän:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"
allowCrossDomainXHR="allowCrossDomainXHR"/>
Placera
child.html
i en lokal sandlåda i filsystemet:
<iframe src="file:///templates/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="app-storage:/templates/"/>
Placera
child.html
i en fjärrsandlåda, där händelsen
dominitialize
används för att skapa en sandlådebrygga:
<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>
Följande
child.html
-dokument visar hur underordnat innehåll får åtkomst till den överordnade sandlådebryggan:
<html>
<head>
<script>
document.write(window.parentSandboxBridge.testProperty);
</script>
</head>
<body></body>
</html>
Mer information finns i
Korsskriptning av innehåll i olika säkerhetssandlådor
och
HTML-säkerhet i Adobe AIR
.