為頁框的
dominitialize
事件指定事件處理常式。此事件是 AIR 專屬的事件,將於建立頁框的視窗及文件物件後、尚未剖析任何指令碼或建立文件元素之前觸發。
頁框會在載入過程中及早傳送
dominitialize
事件,讓子頁面中的任何指令碼能夠參考由
dominitialize
處理常式加到子文件的物件、變數和函數。父頁面必須與子文件位於相同的安全執行程序,才能直接在子文件中加入或存取任何物件。不過,應用程式安全執行程序中的父系可藉由建立安全執行程序橋接,與非應用程式安全執行程序中的內容進行通訊。
下列範例會說明 iframe 標籤在 AIR 中的用法:
將
child.html
放入遠端安全執行程序,且不要對應到遠端伺服器上的實際網域:
<iframe src="http://localhost/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://localhost/air/"/>
將
child.html
放入遠端安全執行程序,只允許向
www.example.com
發出 XMLHttpRequest:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"/>
將
child.html
放入遠端安全執行程序,允許向任何遠端網域發出 XMLHttpRequest:
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"
allowCrossDomainXHR="allowCrossDomainXHR"/>
將
child.html
放入本機與檔案系統安全執行程序:
<iframe src="file:///templates/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="app-storage:/templates/"/>
將
child.html
放入遠端安全執行程序,使用
dominitialize
事件建立安全執行程序橋接:
<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>
下列
child.html
文件會示範子系內容如何存取父輩安全執行程序橋接:
<html>
<head>
<script>
document.write(window.parentSandboxBridge.testProperty);
</script>
</head>
<body></body>
</html>
如需詳細資訊,請參閱
跨指令碼處理不同安全執行程序中內容
和
Adobe AIR 的 HTML 安全性
。