播放HTML5视频时不会加载XML文件

时间:2012-11-13 16:41:56

标签: javascript jquery xml html5-video

我应该可以加载相关的XML文件,并在视频播放时显示XML文件的内容。

我错过了什么?

DEMO

JAVSCRIPT

var XML_PATH = "http://www.adjustyourset.tv/interview/cuepoints.xml";

var cuepoints=new Array();

$(document).ready(function() {
    loadXML();
});

function loadXML()
{
    $.ajax({
            type: "GET",
            url: XML_PATH,
            dataType: "xml",
            success: function onXMLloaded(xml) 
            {
                // set cuepoints
                cuepoints=$(xml).find("cuepoints");

                // loop for each cuepoint
                $(xml).find('cuepoint').each(function loopingItems(value)
                {   
                    // create an object
                    var obj={
                    timeStamp:$(this).find("timeStamp").text(),
                    desc:$(this).find("desc").text(),
                    thumbLink:$(this).find("thumbLink").text(),
                    price:$(this).find("price").text()};
                    cuepoints.push(obj);

                    $("#mycustomscroll").append('<ul>');
                    $("#mycustomscroll").append('<li id="item"><strong>'+(value+1)+"</strong><br/><strong>Time Stamp: </strong>"+obj.timeStamp+'</li>');
                });

                // close </ul>
                $("#mycustomscroll").append('</ul>');
                // append li tags
                $("#leftcolumn").append('<li src="'+cuepoints[0].desc+'"> <p src="'+cuepoints[0].thumbLink+'" /></li>');

                $("#price").append(cuepoints[0].price);

            }
    });
}

2 个答案:

答案 0 :(得分:1)

没有人在呼叫init()

更改

function init() {
    // call loadXML function
    loadXML();
}

$(document).ready(function() {
    loadXML();
});

答案 1 :(得分:1)

确定。现在我理解了这个问题。您可以从ajax请求中获取xml,但是您无法正确解析它。

如果你担心这段代码

  $(xml).find('cuepoint').each(function loopingItems(value)
                {    
            // create an object
                    var obj={timeStamp:$(this).find("timeStamp").text(), desc:$(this).find("desc").text(), thumbLink:$(this).find("thumbLink").text(), price:$(this).find("price").text()};
                    cuepoints.push(obj);

                    // append <ul> and timeStamp
                    $("#mycustomscroll").append('<ul>');
                    $("#mycustomscroll").append('<a><li id="item"><strong>'+(value+1)+"</strong><br/><strong>Time Stamp: </strong>"+obj.timeStamp+'</li></a>');
                });

然后我建议您使用this.getAttribute('timeStamp') or $(this).attr('timeStamp') $(this).find("timeStamp").text(),你不会得到任何东西,因为这是一个属性,而不是一个元素。