2017-10-21 7 views
0

tvml에서 상대 링크를 사용할 수 있습니까? 나는 웹 페이지에서 그들을 사용하는 데 문제가 없었지만 그냥 내 tvml 워드 프로세서에서 작동하도록 얻을 수 없습니다. 내 신속한에서tvml의 관련 링크?

이 현재 onSelect를 링크는 상대적이며 잘 작동하는지 "http://localhost:9001/templates/home.xml"

<lockup onselect="getDocument('templates/Featured.xml')"> 
      <img src="http://localhost:9001/graphics/icons/ICON_featured.png" width="313" height="600" /> 
</lockup> 

주에 위치한 내 tvml에서 작동

static let TVBaseURL = "http://localhost:9001/" 

합니다.

그러나이 작동하지 않습니다

 <lockup onselect="getDocument('templates/Featured.xml')"> 
      <img src="../graphics/icons/ICON_featured.png" width="313" height="600" /> 
    </lockup> 

답변

0

그것은 모두 당신이 당신의 getDocument 함수를 정의하는 방법에 따라 달라집니다. 하지만 코드에서 보면 official TVML Programming Guide, sec 8-3의 코드와 비슷할 가능성이 큽니다.

function getDocument(extension) { 
    var templateXHR = new XMLHttpRequest(); 
    var url = baseURL + extension; 

    loadingTemplate(); 
    templateXHR.responseType = "document"; 
    templateXHR.addEventListener("load", function() {pushPage(templateXHR.responseXML);}, false); 
    templateXHR.open("GET", url, true); 
    templateXHR.send(); 
} 

코드처럼 미리 설정된 baseURL을 사용합니다. 따라서 get 문서는 상대 링크를 지원합니다. (그리고 보편적 인 링크. 그것을 깰 것이다 전체 http://localhost:9001/index.xml 퍼팅.)이 예에서는

XMLHttpRequest 객체 open 기능은 전체 URL이 아닌 상대를합니다. XMLHttpRequest open here에 대해 자세히 알아보십시오.

요컨대. 여기서 상대적인 것은 없습니다.

그러나 Javascript와 비슷한 기능을 수행 할 수 있습니다.

XML 문서를 보관하면 document.getElementsByTagName("img") 인 모든 태그를 찾을 수 있습니다.이 태그는 이미지 요소 목록을 제공합니다. 그런 다음 각자를 .item(i)으로보고 각자의 소스 속성을 .getAttribute('src')으로 가져오고 http 또는 https로 시작하는지 확인하고 그렇지 않으면 .setAttribute('src', baseUrl+imagePath)

으로 새 것을 설정하십시오.