I have been having some trouble with this code. I have tried my best to stay with the book but the book seems to be wrong.
The following code should display the RSS feed for which ever radio button has been selected. You can also see the website on .html.
Thanks in advance for any help!
<html>
<head>
<title>Travel Deals RSS Feed</title>
<script>
var rssRequest = false;
function getRequestObject()
{
try
{
rssRequest = new XMLHttpRequest();
}
catch (requestError)
{
try
{
rssRequest = new ActiveXObject();
}
catch (requestError)
{
try
{
rssRequest = new
ActiveXObject("Micorsoft.XMLHTTP");
}
catch (requestError)
{
window.alert("I am sorry. Your browser does not support AJAX. Please upgrade your broweser and try again.");
return false;
}
}
}
return rssRequest;
}
function rssUpdate()
{
if(!rssRequest)rssRequest = getRequestObject();
for (var i=0; i<6; ++i)
{
if (document.forms[0].deals[i].checked == true)
{
var rss = document.forms[0].deals[i].value;
break;
}
}
rssRequest.abort();
rssRequest.open("get","TravelDeals.php?" + "rss" + rss, true);
rssRequest.send(null)
rssRequest.onreadystatechange=getRssDeals;
//clearTimeout(recentDeals);
//var recentDeals = setTimeout('rssUpdate()', 5000);
}
function getRssDeals()
{
if(rssRequest.readyState==4 && rssRequest.status == 200)
{
var deals = rssRequest.responseXML;
document.getElementById("rssFeed").innerHTML = ""
var dealsInfo=deals.getElementsByTagName("item");
if (dealsInfo.length > 0)
{
for (var i=0; i<dealsInfo.length; ++i)
{
var curHeadline = dealsInfo[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
var curlink = dealsInfo[i].getElementsByTagName("link")[0].childNodes[0].nodeValue;
var curPubDate = dealsInfo[i].getElementsByTagName("pubDate")[0].childNodes[0].nodeValue;
var curDesc = dealsInfo[i].getElementsByTagName("description")[0].childNodes[0].nodeValue;
var curDeal = "<a href='" + curLink + "'>" + curHeadline + "</a><br/>";
curDeal += curDesc + "<br/>";curDeal += curDesc + "<br/>";
document.getElementById("rssFeed").innerHTML += curDeal;
}
}
else
document.getElementById("rssFeed").innerHTML = "The RSS feed appears to be broken or empty.";
}
}
</script>
</head>
<body onload="rssUpdate()">
<h1>Travel Deals RSS</h1>
<form method="get" action="">
<table border="1">
<colgroup span="1" width="125"/>
<colgroup span="1" width="350"/>
<tr>
<td align="top">
<input type="radio" name="deals" value=".rss.xml" onclick="rssUpdate()"/><Orbitz<br/>
<input type="radio" name="deals" value=".0/services/RssDealsServices?ProductType=Air&rdr=GEN&nm=My~Travelocity~Specials&typ=0&orig=ABQ&dest=PHX,LAS,LAX,NYC,LGB&id=9197I1366355523195" checked="checked" onclick="rssUpdate()"/><Travelocity<br/>
<input type="radio" name="deals" value=".php?s=43&pagetemplate=rss" onclick="rssUpdate()"/><Hotwire<br/>
</td>
<td id="rssFeed" valign="top></td>
</tr>
</table>
</form>
</body>
I have been having some trouble with this code. I have tried my best to stay with the book but the book seems to be wrong.
The following code should display the RSS feed for which ever radio button has been selected. You can also see the website on http://w3.cnm.edu/~bnoble/cis1210/afds/Travel/TravelDeals.html.
Thanks in advance for any help!
<html>
<head>
<title>Travel Deals RSS Feed</title>
<script>
var rssRequest = false;
function getRequestObject()
{
try
{
rssRequest = new XMLHttpRequest();
}
catch (requestError)
{
try
{
rssRequest = new ActiveXObject();
}
catch (requestError)
{
try
{
rssRequest = new
ActiveXObject("Micorsoft.XMLHTTP");
}
catch (requestError)
{
window.alert("I am sorry. Your browser does not support AJAX. Please upgrade your broweser and try again.");
return false;
}
}
}
return rssRequest;
}
function rssUpdate()
{
if(!rssRequest)rssRequest = getRequestObject();
for (var i=0; i<6; ++i)
{
if (document.forms[0].deals[i].checked == true)
{
var rss = document.forms[0].deals[i].value;
break;
}
}
rssRequest.abort();
rssRequest.open("get","TravelDeals.php?" + "rss" + rss, true);
rssRequest.send(null)
rssRequest.onreadystatechange=getRssDeals;
//clearTimeout(recentDeals);
//var recentDeals = setTimeout('rssUpdate()', 5000);
}
function getRssDeals()
{
if(rssRequest.readyState==4 && rssRequest.status == 200)
{
var deals = rssRequest.responseXML;
document.getElementById("rssFeed").innerHTML = ""
var dealsInfo=deals.getElementsByTagName("item");
if (dealsInfo.length > 0)
{
for (var i=0; i<dealsInfo.length; ++i)
{
var curHeadline = dealsInfo[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
var curlink = dealsInfo[i].getElementsByTagName("link")[0].childNodes[0].nodeValue;
var curPubDate = dealsInfo[i].getElementsByTagName("pubDate")[0].childNodes[0].nodeValue;
var curDesc = dealsInfo[i].getElementsByTagName("description")[0].childNodes[0].nodeValue;
var curDeal = "<a href='" + curLink + "'>" + curHeadline + "</a><br/>";
curDeal += curDesc + "<br/>";curDeal += curDesc + "<br/>";
document.getElementById("rssFeed").innerHTML += curDeal;
}
}
else
document.getElementById("rssFeed").innerHTML = "The RSS feed appears to be broken or empty.";
}
}
</script>
</head>
<body onload="rssUpdate()">
<h1>Travel Deals RSS</h1>
<form method="get" action="">
<table border="1">
<colgroup span="1" width="125"/>
<colgroup span="1" width="350"/>
<tr>
<td align="top">
<input type="radio" name="deals" value="http://www.orbitz./rss/topdeals-vacationpackages.rss.xml" onclick="rssUpdate()"/><Orbitz<br/>
<input type="radio" name="deals" value="http://www.travelocity./dealservice/globaltrips-shopping-svcs/deals-1.0/services/RssDealsServices?ProductType=Air&rdr=GEN&nm=My~Travelocity~Specials&typ=0&orig=ABQ&dest=PHX,LAS,LAX,NYC,LGB&id=9197I1366355523195" checked="checked" onclick="rssUpdate()"/><Travelocity<br/>
<input type="radio" name="deals" value="http://press.hotwire./index.php?s=43&pagetemplate=rss" onclick="rssUpdate()"/><Hotwire<br/>
</td>
<td id="rssFeed" valign="top></td>
</tr>
</table>
</form>
</body>
Share
Improve this question
edited Apr 20, 2013 at 2:38
Lemur
2,6654 gold badges28 silver badges42 bronze badges
asked Apr 20, 2013 at 2:21
user2299963user2299963
111 gold badge1 silver badge3 bronze badges
3
-
1
I've seen the same question before and had posted an answer, that time there was a
td
with idrssFeed
. – Arun P Johny Commented Apr 20, 2013 at 2:28 - see the updated solution – Arun P Johny Commented Apr 20, 2013 at 3:37
-
“There is no element with id
rssFeed
in the page.” – dumbass Commented Dec 2, 2024 at 18:38
2 Answers
Reset to default 1There is no element with id rssFeed
in the page.
You can solve it by adding a div
with id rssFeed
in the page
<div id="rssFeed"></div>
Try this plete code, because you have unclosed element in your markup
<html>
<head>
<title>Travel Deals RSS Feed</title>
<script>
var rssRequest = false;
function parseXML(xml){
var parser, xmlDoc;
if (window.DOMParser) {
parser = new DOMParser();
xmlDoc = parser.parseFromString(xml,"text/xml");
} else {
// Internet Explorer
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(xml);
}
}
function getRequestObject()
{
try
{
rssRequest = new XMLHttpRequest();
}
catch (requestError)
{
try
{
rssRequest = new ActiveXObject();
}
catch (requestError)
{
try
{
rssRequest = new
ActiveXObject("Micorsoft.XMLHTTP");
}
catch (requestError)
{
window.alert("I am sorry. Your browser does not support AJAX. Please upgrade your broweser and try again.");
return false;
}
}
}
return rssRequest;
}
function rssUpdate()
{
if(!rssRequest)rssRequest = getRequestObject();
for (var i=0; i<6; ++i)
{
if (document.forms[0].deals[i].checked == true)
{
var rss = document.forms[0].deals[i].value;
break;
}
}
rssRequest.abort();
rssRequest.open("get","TravelDeals.php?" + "rss" + rss, true);
rssRequest.send(null)
rssRequest.onreadystatechange=getRssDeals;
//clearTimeout(recentDeals);
//var recentDeals = setTimeout('rssUpdate()', 5000);
}
function getRssDeals()
{
if(rssRequest.readyState==4 && rssRequest.status == 200)
{
var deals = parseXML(rssRequest.responseXML); document.getElementById("rssFeed").innerHTML = ""
var dealsInfo=deals.getElementsByTagName("item");
if (dealsInfo.length > 0)
{
for (var i=0; i<dealsInfo.length; ++i)
{
var curHeadline = dealsInfo[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
var curlink = dealsInfo[i].getElementsByTagName("link")[0].childNodes[0].nodeValue;
var curPubDate = dealsInfo[i].getElementsByTagName("pubDate")[0].childNodes[0].nodeValue;
var curDesc = dealsInfo[i].getElementsByTagName("description")[0].childNodes[0].nodeValue;
var curDeal = "<a href='" + curLink + "'>" + curHeadline + "</a><br/>";
curDeal += curDesc + "<br/>";curDeal += curDesc + "<br/>";
document.getElementById("rssFeed").innerHTML += curDeal;
}
}
else
document.getElementById("rssFeed").innerHTML = "The RSS feed appears to be broken or empty.";
}
}
</script>
</head>
<body onload="rssUpdate()">
<h1>Travel Deals RSS</h1>
<form method="get" action="">
<table border="1">
<colgroup span="1" width="125"/>
<colgroup span="1" width="350"/>
<tr>
<td align="top">
<input type="radio" name="deals" value="http://www.orbitz./rss/topdeals-vacationpackages.rss.xml" onclick="rssUpdate()"/><Orbitz<br/>
<input type="radio" name="deals" value="http://www.travelocity./dealservice/globaltrips-shopping-svcs/deals-1.0/services/RssDealsServices?ProductType=Air&rdr=GEN&nm=My~Travelocity~Specials&typ=0&orig=ABQ&dest=PHX,LAS,LAX,NYC,LGB&id=9197I1366355523195" checked="checked" onclick="rssUpdate()"/><Travelocity<br/>
<input type="radio" name="deals" value="http://press.hotwire./index.php?s=43&pagetemplate=rss" onclick="rssUpdate()"/><Hotwire<br/>
</td>
</tr>
</table>
<div id="rssFeed"><div>
</form>
</body>
</html>
It's because you're missing a closing quote in your td
element. You have <td id="rssFeed" valign="top></td>
when what you want is <td id="rssFeed" valign="top"></td>
. Fixing this should cause the element to show up.
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745540821a4632119.html
评论列表(0条)