1
我在使用我的應用時需要加載一些XML時遇到了一些問題。這段代碼在瀏覽器中工作得非常好,因此我唯一能想到的就是我在使用phonegap deviceready
鉤子做錯了事情。自動加載XML數據不能與PhoneGap和iOS配合使用
任何想法將不勝感激。
我已經取出了我的主要開發服務器地址的XML,順便說一句。
var xmlhttp;
window.onload = function() {
document.addEventListener('deviceready', getData, false);
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = loadData;
}
function getData() {
xmlhttp.open("GET", "http://example.com/xml.php", true);
xmlhttp.send();
}
function loadData() {
if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
var storiesXML = xmlhttp.responseXML.documentElement.getElementsByTagName("stories");
var wrapper = '<div class="storiesWrapper">';
var contentPage = '';
for (var i = 0; i < storiesXML.length; i++) {
var homeOutput = '<div class="storyContainer">';
var titleElement = storiesXML[i].getElementsByTagName("title");
var titleText = titleElement[0].firstChild.nodeValue;
var summaryElement = storiesXML[i].getElementsByTagName("summary");
var summaryText = summaryElement[0].firstChild.nodeValue;
var imgElement = storiesXML[i].getElementsByTagName("img");
var imgText = imgElement[0].firstChild.nodeValue;
var fulltextElement = storiesXML[i].getElementsByTagName("fulltext");
var fulltextText = fulltextElement[0].firstChild.nodeValue;
var videolinkElement = storiesXML[i].getElementsByTagName("videolink");
var videoLink = videolinkElement[0].firstChild.nodeValue;
var pageId = titleText.toLowerCase().replace(/\s+/g, '');
homeOutput += '<img class="thumbnail" src="' + imgText + '" />';
homeOutput += '<a class="titleText" data-transition="slide" href="#' + pageId + '">' + titleText + '</a>';
homeOutput += '<p class="summaryText">' + summaryText + '</p>';
homeOutput += '<div class="clear"></div>';
homeOutput += '</div>';
if ((document.getElementById(pageId)) == (null)) {
var pageOutput = '<div class="pageContent" data-role="page" data-theme="b" id="' + pageId + '">';
pageOutput += '<div data-role="header" class="header">';
pageOutput += '<a class="backButton" href="javascript:history.go(-1)" data-transition="slide" data-diraction="reverse" data-icon="back">Back</a>'
pageOutput += '<h1>Stories</h1>';
pageOutput += '</div>';
pageOutput += '<h2 class="storyTitle">' + titleText + '</h2>';
pageOutput += '<a href="' + videoLink + '">';
pageOutput += '<img class="featuredImage" src="' + imgText + '" />';
pageOutput += '</a>';
pageOutput += '<div data-role="content" class="mainText">';
pageOutput += fulltextText;
pageOutput += '</div>';
pageOutput += '</div>';
contentPage += pageOutput;
}
wrapper += homeOutput;
}
wrapper += '<div class="clear"></div>';
wrapper += '</div>';
document.getElementById("stories").innerHTML = wrapper;
if ((document.getElementById(pageId)) == (null)) {
$(contentPage).insertAfter("p#insertAfter");
}
}
}
setInterval(getData, 60000);