tvml 中的相对链接



是否可以在tvml中使用相对链接?我在网页中使用它们从未遇到过问题,但就是无法让它在我的 tvml 文档中工作。

从我的雨燕:

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

这目前适用于我的 tvml,它位于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>

请注意,onselect链接是相对的,工作正常。但是这不起作用...

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

这完全取决于您如何定义getDocument函数。但是从您的代码来看,它很可能看起来有点像官方 TVML 编程指南第 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();
}

它像您的代码一样使用预设的基本 URL。因此,您的获取文档支持相对链接。(而不是通用链接,放置完整的 http://localhost:9001/index.xml 会破坏它。

在此示例中,XMLHttpRequest对象open函数采用完整的 URL,而不是相对 URL。阅读更多关于XMLHttpRequest 打开在这里。

总之。这里没有什么是相对的。

但是,您可以使用Javascript的强大功能做类似的事情。

当您掌握 XML 文档时,您可以找到带有 document.getElementsByTagName("img") 的所有标记,这为您提供了图像元素的列表。然后剩下的就是用.item(i)查看它们中的每一个,通过.getAttribute('src')获取它们的源属性,看看它是以http还是https开头,如果没有,则按.setAttribute('src', baseUrl+imagePath)设置新的

相关内容

  • 没有找到相关文章

最新更新