2014-04-25 2 views
0

라이브러리를 수정하지 않고도 기존 HTML5 애플리케이션을 WinJS로 이식 할 수 있습니까? execUnsafeLocalFunction으로 각 라이브러리를 살펴보고 innerHTML 호출을 래핑하는 것은 더러운 해킹입니다.라이브러리를 수정하지 않고 WinJS로 이식하기

안전하지 않은 것으로 기본 페이지를로드 할 수 있습니까? iframe의 모든 내용을로드하는 것은 빈 흰색 상자를 표시하는 것입니다.

답변

1

당신이 right context MS-appx-웹과에 넣어 경우는 상황이 iframe이 작동 할 수 있어야한다 :

<iframe src="ms-appx-web:///path/to/iframe.html"></iframe> 

단점은 WinRT API를 얻을 수 없을 것입니다 거기에서. 불행히도 SafeHTML의 일부를 선택적으로 비활성화하는 방법은 없습니다. execEnsafeLocalFunction을 암시 적으로 호출하도록 HTMLElement.innerHTML을 대체하기 위해 해킹을 수행하여 전역 적으로 사용 중지 할 수는 있지만 스크립트 삽입 공격까지도 열어 앱이 스토어에서 거부 될 수 있습니다.

window.location.href = "ms-appx-web:///path/to/iframe.html"; 

난 당신이 다시 로컬 컨텍스트 (MS-appx)에 보이지 않는 iframe이있을 수 있습니다 믿고를 사용

또 다른 옵션은 실제로 웹 컨텍스트에 루트 페이지를 탐색하는 것입니다 postMessage API을 사용하여 필요에 따라 경계를 통해 통신하십시오.

관련 문제