这个阅读器非常简单,简单的我觉得都不应该称之为RSS阅读器。
前一段时间,一时心血来潮了解了一些RSS的东西,觉得这个东西非常方便,也非常有用,很好的解决了像我这种懒人看新闻等事情的一些麻烦事情,于是决定使用RSS。后来用了几种不同的RSS阅读器,比如看天下,周博通等,虽然他们还算非常好,但用起来各有个的不方便之处,于是有了想自己写一个阅读器的想法。不过还是比较懒,先到网上找代码,并没有找到,以为RSS这东西是新技术,可能会比较难,一时间想放弃。不过,兴趣驱动,让我没有放弃,经过一翻资料的查找,对RSS技术有了了解之后,发现这东西也很简单,一开始我只是被所谓的先进技术给吓住了。最后,写了一个非常简单的阅读器,其实就是简单的xml解析。后面附代码,因为没有时间搞复杂的了,就只能这样了。
代码使用javascript谢的网页,需要一些Activex控件的支持。
<html>
<head>
<script language="JavaScript">
<!--
var url;
var xmlHTTP;
var orderDoc;
var items;
var i;
var index=0;
setTimeout('this.location.reload();',600000);
function initXML(index){
setChannel(index);
xmlHTTP = new ActiveXObject("MSXML2.XMLHTTP");
xmlHTTP.open("GET",url,false);
xmlHTTP.send();
orderDoc=xmlHTTP.responseXML;
items = orderDoc.selectNodes("/rss/channel/item");
i=items.length;
getDataNext();
}
function getNode(doc, xpath) {
var retval = "";
var value = doc.selectSingleNode(xpath);
if (value) retval = value.text;
return retval;
}
function openLink(){
var link = getNode(orderDoc, "/rss/channel/item[" + i + "]/link");
window.open(link,"_blank");
}
function setChannel(index){
switch (index) {
case 0 :
url="http://rss.sina.com.cn/news/marquee/ddt.xml";
break;
case 1 :
url="http://rss.sina.com.cn/sports/basketball/nba.xml";
break;
case 2 :
url="http://www.blogchina.com/xml/4_rss2.xml";
break;
case 3 :
url="http://rss.sina.com.cn/news/allnews/finance.xml";
break;
default :
url="http://rss.sina.com.cn/news/marquee/ddt.xml";
}
}
function getDataNext() {
i--;
if (i <0) {
alert("已经是最后一条新闻了!");
i++;
}
var str = getNode(orderDoc, "/rss/channel/item[" + i + "]/title");
str= str+" "+(items.length-i)+"/"+items.length;
document.forms[0].news.value = str;
}
function getDataPrev() {
i++;
if (i >items.length - 1) {
alert("已经是第一条新闻了!");
i--;
}
var str = getNode(orderDoc, "/rss/channel/item[" + i + "]/title");
str= str+" "+(items.length-i)+"/"+items.length;
document.forms[0].news.value = str;
}
function keyDown() {
var keycode = event.keyCode
var realkey = String.fromCharCode(event.keyCode)
//alert("keycode: " + keycode + " realkey: " + realkey)
if(keycode==39) getDataNext();
if(keycode==37) getDataPrev();
if(keycode==13) openLink();
}
document.onkeydown = keyDown
function document.onkeydown()
{
//if(window.event.ctrlKey)alert("Ctrl key pressed")
if(window.event.enterKey)alert("Ctrl key pressed")
}
// -->
</script>
</head>
<body onload="initXML(index)" topmargin=2 bottommargin=2 leftmargin=2 rightmargin=2>
<form>
<select name="channel" id="channel" onChange="javascript:initXML(this.selectedIndex)">
<option selected value="0" >新浪新闻
<option value="1" >新浪篮球
<option value="2" >专栏文章
<option value="3" >财经焦点
</select>
<input type="text" name="news" size=55>
<input type="button" value="阅" onClick="openLink();">
<input type="button" value="<<" onClick="getDataPrev();">
<input type="button" value=">>" onClick="getDataNext();">
<input type="button" value="新" onClick="javascript:window.location.reload();">
</form>
</body>
</html>
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=3083973
|
- 评论人:lijiping126
2008-07-27 20:37:15
|
|||
谢谢 博主的文章 |
||||