2010-03-11 5 views
1

을 사업부에 액세스 cannont, 가젯 스크립트 파일에서이 메소드를 호출하는 온 클릭으로 사업부가있다 :Windows 사이드 바 가젯은 기본 가젯 HTML에서 플라이 아웃 DOM에

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
<head> 
    <title>This is a flyout</title> 
    <link href="Css\FlyoutStyle.css" type="text/css" rel="Stylesheet" /> 
</head> 
<body> 
    <div id="divFlyout" > 
    </div> 
</body> 
</html> 

mainFlyoutDiv는 항상 null입니다. 디버거를 통해 System.Gadget.Flyout.document 객체를 들여다 보면 body 매개 변수가 null입니다. 그렇다고 생각하지 않습니다. 가젯이 처음로드 될 때 System.Gadget.Flyout.file 값이 다른 곳에서 설정됩니다.

내가 뭘 잘못하고 있니?

또한 System.Gadget.Flyout.document 속성에 액세스하려면 System.Gadget.Flyout.show 속성이 true 여야합니까? 내 궁극적 인 목표는 플라이 아웃을 열고 동적으로 채우는 것입니다.

답변

0

여기에서 문제는 플라이 아웃이 비동기 적으로로드된다는 것입니다 (완전히 새로운 창이기 때문에). 요소가 아직 존재하지 않는 - 플라이 아웃 문서가 null의 이유 인 구문 분석이 완료되기 전에 라인

var mainFlyoutDiv = flyoutDoc.getElementById('divFlyout'); 

가 실행됩니다.

ShowFlyout = function()  
{ 
    System.Gadget.Flyout.show = true; 
    var flyoutWin = System.Gadget.Flyout.document.parentWindow; 
    flyoutWin.myCustomVar = "Hello"; 
} 

그리고 당신의 플라이 아웃 HTML에서

가, 다음 코드를 사용하여 스크립트를 추가 : 사용 가능한 몇 가지 옵션이처럼 내 마음에 드는 것을 무언가가있다

window.onload = function() 
{ 
    document.getElementById("divFlyout").innerHTML = myCustomVar; 
} 
+0

도현은! 그것이 나에게 일어 났을 것입니다. ShowFlyout 메서드를 System.Gadget.Flyout.onShow 속성에 연결합니다. 감사 :) – cyrix86