2014-12-20 3 views
2

현재 Universal WinRT 앱 (Windows 8.1/Windows Phone 8.1)에서 사용되는 WebView 컨트롤에 문제가 있습니다.document.location.protocol 값을 WinRT webview에서 변경할 수 있습니까?

나는 현재 NatigateToString 방법을 사용하여 웹보기로 자바 스크립트의 다음 조각을로드 :

<html> 
    <head> 
     <base href='MY_BASE_URL'> 
    </head> 
    <body> 
    <script> 
     var idcomments_acct = 'MY_ACC_ID'; 
     var idcomments_post_id='POST_ID'; 
     var idcomments_post_url='POST_URL'; 
    </script> 
    <span id='IDCommentsPostTitle' style='display:none'></span> 
    <script type='text/javascript' src='http://www.intensedebate.com/js/genericCommentWrapperV2.js'></script> 
    </body> 
</html> 

이 제네릭은 그 here을 찾을 수 있습니다 설치 사용 IntenseDebate에 대한 코드의 조각이다.

문제는 참조 사용 IntenseDebate 코드에서이 코드 라인이다 : document.location.protocol이 호출에 404 오류로 이어지는, 웹보기에 about:로 설정되어 있기 때문에 코드의

load_js(document.location.protocol+"//connect.facebook.net/en_US/all.js") 

이 작품은 실패합니다. 안드로이드/iOS에서

은 단순히 loadDataWithBaseUrl 방법이 잘 작동 사용 http: 또는 https: 기반 주소로 기본 URI를 설정 webviews하지만 WinRT의 웹보기는 유사한 방법이 없습니다. 위의 코드 에서처럼 HTML 자체에 Base URL을 설정하면 이미지 url 및 sortlike를 확인할 수 있지만이 메서드는 document.location 값을 변경하지 않습니다.

참조 된 JS 파일을 수정할 수 없으며 위 HTML 조각을 서버에 배치하는 것이이 응용 프로그램 용도의 옵션이 아니므로 document.location.protocol을 강제로이 응용 프로그램에 사용할 수있는 방법이 있습니까? WinRT webview의 특정 값은 무엇입니까? 아니면 webview에서 작동하도록이 HTML을 가져 오는 다른 방법이 있습니까?

답변

2

직접적인 방법은 없습니다. WebView는 document.location을 재정의 할 인터페이스를 제공하지 않습니다. 프로토콜의 분기가 일반적인 패턴 인 경우 http://wpdev.uservoice.com에서 요청하는 것이 좋습니다.

필자는 HTML/JavaScript 모범 사례에 익숙하지 않지만 document.location.protocol을 찾는 대부분의 참조는 프로토콜이 항상 http : 또는 https로 가정 할 때 경고합니다. 이것은 IntenseDebate가 고쳐야 할 어떤 것일 수 있습니다.

즉, DOM에서 문제가되는 위치를 찾고 페이지를 변경하면 페이지에 코드를 삽입하여이 문제를 극복 할 수 있습니다. 프로토콜 만 변경할 수는 없지만 프로토콜이 참조 된 곳을 찾아서 변경할 수 있습니다. genericCommentWrapper2.cs에서 참조 된 genericCommentWrapper2.php에서 commentScript.src로로드 된 다음 문서 머리에 추가 된 것으로 가정합니다.

+0

괜찮습니다. IntenseDebate에게이 문제에 대해 문의 한 다음 해당 코드를 수정할 수 있는지 확인합니다. 정보 주셔서 감사합니다. –

관련 문제