프레임의
dominitialize
이벤트에 대한 이벤트 핸들러를 지정합니다. 이 이벤트는 프레임의 Window 및 Document 객체가 만들어진 후 스크립트가 파싱되거나 문서 요소가 만들어지기 전에 발생하는 AIR 관련 이벤트입니다.
dominitialize
핸들러에서 자식 문서에 추가한 객체, 변수 및 함수를 자식 페이지의 스크립트에서 참조할 수 있도록 프레임에서는
dominitialize
이벤트를 로드 시퀀스에서 초기에 전달합니다. 부모 페이지가 자식과 동일한 샌드박스에 있어야만 자식 문서의 객체를 직접 추가하거나 액세스할 수 있습니다. 그러나 응용 프로그램 샌드박스의 부모가 샌드박스 브리지를 설정하여 비 응용 프로그램 샌드박스의 내용과 통신할 수 있습니다.
다음 예에서는 AIR에서의 iframe 태그 사용을 보여 줍니다.
child.html
을 원격 서버의 실제 도메인에 매핑하지 않고 원격 샌드박스에 놓습니다.
<iframe src="http://localhost/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://localhost/air/"/>
child.html
을 원격 샌드박스에 놓아
www.example.com
에 대한 XMLHttpRequests만 허용합니다.
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"/>
child.html
을 원격 샌드박스에 놓아 모든 원격 도메인에 대한 XMLHttpRequests를 허용합니다.
<iframe src="http://www.example.com/air/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="http://www.example.com/air/"
allowCrossDomainXHR="allowCrossDomainXHR"/>
child.html
을 local-with-file-system 샌드박스에 놓습니다.
<iframe src="file:///templates/child.html"
documentRoot="app:/sandbox/"
sandboxRoot="app-storage:/templates/"/>
dominitialize
이벤트를 통해 샌드박스 브리지를 설정하여
child.html
을 원격 샌드박스에 놓습니다.
<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 보안
을 참조하십시오.