내가 쓰는 실버라이트와 모스 연동 방법은 아주 간단하다.
실버라이트에서 뿌려주는 view 부분의 html을 리터럴로 받아서 웹파트를 작성하고 뿌려주는 것이다.
이럴때, 간혹 싱크가 안 맞아서 웹서비스 등을 사용해야 하는 문제가 발생하기는 하지만 대략은 그러하다.
그럴때, hrml 부분을 확인하면,
실버라이트 개발자는 body 부분에 자바스크립트로 된 메소드를 onload 시에 부르기도 한다.
그러할때 웹파트 를 삽입할 마스터 페이지 자체는 이미 html 의 head 나 body 부분이 구현되어 있기 때문에
<body onload="hamsu()"> 이렇게 했다가는 처리 되지 않는다.
이럴때는 body에 onload 하여 사용하지 않아야 한다.
아래 처럼 body에서 onload 할 함수가 있다면 스크립트 안에 _spBodyOnLoadFunctionNames를 사용하여서
강제로 로드 될수 있도록 해주어야 한다.
<script type='text/javascript'>
_spBodyOnLoadFunctionNames.push('aaa');
funtion aaa()
{
alert('하하');
}
</script>
이거 몰라서 삽질 꽤나 했다.
만약
<script type='text/javascript' src='" + path + @"lib/basic_mapscript.js' ></script>
이런식으로 자바스크립트를 링크만 했을 경우에도
<script type='text/javascript'>
_spBodyOnLoadFunctionNames.push('호출할 함수명');
//debugger; //디버깅시..
</script>
이렇게 하면된다.
질문사항 있으시면 질문 환영 합니다.
퍼가실땐 덧글 필수!!
댓글 영역