2009-10-07 7 views
1

실버 라이트 컨트롤이 포함 된 웹 응용 프로그램이 있습니다. Silverlight 컨트롤이 포함 된 특정 페이지에 액세스하면 javascript가 실행되고이 스크립트가 너무 일찍 실행되면 스크립트가 IE의 JavaScript 엔진을 중단 시키며 try/catch가 오류를 처리 할 수 ​​없습니다.실버 라이트 내용에 액세스하려고하면 자바 스크립트가 충돌합니다.

실버 라이트 컨트롤 요소가 완전히 스크립트 충돌로드되지 않았으며, 스크립트,뿐만 아니라이 더 JavaScript가 모든 페이지에서 실행되지 않는 경우 간단한 자바 스크립트

silverlightHtmlElement.Content.SilverlightApplication.SilverlightMethod(); 

.

간단한 "if (silverlightHtmlElement.Content.SilverlightApplication)"을 사용하면 액세스 가능 여부를 확인할 수 있습니다.

문제는 나중에 페이지에서 스크립트를 실행할 수 없다는 것입니다. 이전에 본 사람이 있습니까?

답변

0

초기화가 완료된 후에도 자바 스크립트 기능을 실행하는 Silverlight 코드를 작성할 수 있습니다. 이렇게하면 Silverlight 앱은로드가 완료되면 웹 페이지에 알릴 수 있습니다.

<param name="onLoad" value="pluginLoaded" /> 

은 다음 페이지에 자바 스크립트 함수를 정의

HtmlPage.Window.Invoke("myJsFunction", null); 
1

당신은 제어가 활성화되어 있지 않으면,로드/코드가 실행되지 않았는지 확인하여 실버 개체 태그에이 PARAM를 추가해야 이

var app= null; 
function pluginLoaded(sender, args) { 
    app= sender.getHost(); 
} 

처럼 당신은 단지 그 준비가 있는지 확인하기 위해 널 (null)에 대한 응용 프로그램 변수를로드 이벤트 처리기에 방법에 전화를 추가하거나 조회 할 수 있습니다.