📄 step7-tree.html
字号:
<html>
<SCRIPT LANGUAGE="JavaScript">
<!--
Array.prototype.remove=function(dx){
if(isNaN(dx)||dx>this.length){return false;}
for(var i=0,n=0;i<this.length;i++){
if(this[i]!=this[dx]){
this[n++]=this[i]
}
}
this.length-=1
}
var monthList=new Array();
monthList["Jan"]="01";
monthList["Feb"]="02";
monthList["Mar"]="03";
monthList["Apr"]="04";
monthList["May"]="05";
monthList["Jun"]="06";
monthList["Jul"]="07";
monthList["Aug"]="08";
monthList["Sep"]="09";
monthList["Oct"]="10";
monthList["Nov"]="11";
monthList["Dec"]="12";
var xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
var blogList=new Array();
var currentBlog=new Array();
var currentLoad=0;
function showBlogList(){
count.innerHTML=blogList.length+" Feeds";
showBlogItemList();
}
function showBlogItemList(){
var showhtml="";
if(blogList.length>0){
showhtml="<table border=\"0\" width=\"260\">";
for(var i=0;i<blogList.length;i++){
showhtml=showhtml+"<tr>";
showhtml=showhtml+"<td width=\"20\"> </td>";
showhtml=showhtml+"<td width=\"24\"><img src=\"blog.gif\"></td>";
showhtml=showhtml+"<td><a href=\"#\" onclick=\"showBlogItem('"+i+"');\"><font size=\"2px\" color=\"#000000\" face=\"Verdana\">";
if(blogList[i].newitem==0){
showhtml=showhtml+blogList[i].blogtitle;
} else {
showhtml=showhtml+"<b>"+blogList[i].blogtitle+"("+blogList[i].newitem+")</b>";
}
showhtml=showhtml+"</font></a></td>";
showhtml=showhtml+"</tr>";
}
showhtml=showhtml+"</table>";
}
itemlist.innerHTML=showhtml;
}
function showAllBlogItem(){
}
function showBlogItem(id){
currentBlog=blogList[id];
currentBlog.lastDateTime=currentBlog.tempLastTime;
updateOPML(id,currentBlog);
top.baseframe.location="step7-base.html#top";
top.baseframe.showBlog(currentBlog.newitem);
currentBlog.newitem=0;
showBlogItemList();
}
function addBlogURL(){
var url=prompt("请输入RSS的地址:");
loadRSS(blogList.length,url,"insert");
}
function loadRSS(position,url,action){
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange=function() {
if (xmlHttp.readyState==4) {
if(xmlHttp.status==200){
var blogfeed=blogList[position];
if(blogfeed==undefined){
blogList[position]=new Array();
blogfeed=blogList[position];
blogfeed.lastDateTime="";
}
blogfeed.newitem=0;
var xmldom=xmlHttp.responseXML;
var channel=xmldom.documentElement.childNodes.item(0);
var itemlist=channel.childNodes;
var blogtitle=getNodeString(itemlist,"title");
var bloglink=getNodeString(itemlist,"link");
var blogdescription=getNodeString(itemlist,"description");
var managingEditor=getNodeString(itemlist,"managingEditor");
var pubDate=getNodeString(itemlist,"pubDate");
var blogitemlist=new Array();
var image;
var tempLastTime="";
for(var i=0;i<itemlist.length;i++){
var node=itemlist.item(i);
if(node.tagName=="item"){
var tempitem=node.childNodes;
blogitemlist[blogitemlist.length]=tempitem;
var pubDateTime=getNodeString(tempitem,"pubDate");
var goodDateTime=formatDateTime(pubDateTime);
if(goodDateTime>blogfeed.lastDateTime){
if(goodDateTime>tempLastTime) tempLastTime=goodDateTime;
blogfeed.newitem++;
}
}
if(node.tagName=="image"){
image=node.childNodes;
}
}
if(tempLastTime=="") tempLastTime=blogfeed.lastDateTime;
blogfeed.tempLastTime=tempLastTime;
blogfeed.blogtitle=blogtitle;
blogfeed.bloglink=bloglink;
blogfeed.xmllink=url;
blogfeed.blogdescription=blogdescription;
blogfeed.managingEditor=managingEditor;
blogfeed.pubDate=pubDate;
blogfeed.blogitemlist=blogitemlist;
blogfeed.image=image;
if(action=="insert"){
insertOPML(position,blogfeed);
} else if(action=="update"){
updateOPML(position,blogfeed);
}
}
if(action=="edit"){
showBlogList();
} else {
currentLoad++;
waitForShow();
}
}
}
xmlHttp.send(null);
}
function insertOPML(position,blogfeed){
xmlHttp.open('POST', 'http://localhost/ajax/opmlDAO.php',true);
xmlHttp.onreadystatechange=function() {
if (xmlHttp.readyState==4&&xmlHttp.status==200) {
var str=xmlHttp.responseText;
if(str!=""){
var i=str.indexOf(";");
var str1=str.substring(0,i);
var temp=str1.indexOf("=");
var ID=str1.substring(temp+1);
var str1=str.substring(i+1);
var temp=str1.indexOf("=");
var lastID=str1.substring(temp+1);
blogList[ID*1].ID=lastID;
}
}
}
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
var poststr=makePostStr(position,blogfeed)+"&action=insert";
xmlHttp.send(poststr);
}
function updateOPML(position,blogfeed){
xmlHttp.open('POST', 'http://localhost/ajax/opmlDAO.php',true);
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
var poststr=makePostStr(position,blogfeed)+"&action=update";
xmlHttp.send(poststr);
}
function deleteOPML(ID){
xmlHttp.open('POST', 'http://localhost/ajax/opmlDAO.php',true);
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
var poststr="";
poststr=poststr+"ID="+ID;
poststr=poststr+"&action=delete";
xmlHttp.send(poststr);
}
function makePostStr(position,blogfeed){
var poststr="";
poststr=poststr+"ID="+blogList[position].ID;
poststr=poststr+"&position="+position;
poststr=poststr+"&title="+blogfeed.blogtitle;
poststr=poststr+"&htmlUrl="+blogfeed.bloglink;
poststr=poststr+"&xmlUrl="+blogfeed.xmllink;
poststr=poststr+"&lastDateTime="+blogfeed.lastDateTime;
return poststr;
}
function loadOPML(){
xmlHttp.open("GET", "http://localhost/ajax/opml.php", true);
xmlHttp.onreadystatechange=function() {
if (xmlHttp.readyState==4&&xmlHttp.status==200) {
var xmldom=xmlHttp.responseXML;
var outlines=xmldom.documentElement.childNodes.item(1).childNodes.item(0).childNodes;
for(var i=0;i<outlines.length;i++){
var attributes=outlines.item(i).attributes;
var title=getAttributeString(attributes,"title");
var htmlUrl=getAttributeString(attributes,"htmlUrl");
var xmlUrl=getAttributeString(attributes,"xmlUrl");
var lastDateTime=getAttributeString(attributes,"lastDateTime");
var ID=getAttributeString(attributes,"ID");
var blogfeed=new Array();
blogfeed.blogtitle=title;
blogfeed.bloglink=htmlUrl;
blogfeed.xmllink=xmlUrl;
blogfeed.lastDateTime=lastDateTime;
blogfeed.blogitemlist=new Array();
blogfeed.ID=ID;
blogList[blogList.length]=blogfeed;
}
waitForShow();
}
}
xmlHttp.send(null);
}
function waitForShow(){
if(blogList.length>currentLoad){
loadRSS(currentLoad,blogList[currentLoad].xmllink,"update");
} else {
showBlogList();
}
}
function refresh(){
currentLoad=0;
waitForShow();
}
function getNodeString(itemlist,tag){
for(var i=0;i<itemlist.length;i++){
var node=itemlist.item(i);
if(node.tagName==tag){
return node.text;
}
}
return "";
}
function getAttributeString(attributes,tag){
for(var i=0;i<attributes.length;i++){
var name=attributes.item(i).name;
var value=attributes.item(i).value;
if(name==tag){
return value;
}
}
}
function formatDateTime(str){
var year=str.substring(12,16);
var ms=str.substring(8,11);
var mon=monthList[ms];
var day=str.substring(5,7);
var time=str.substring(17,25);
return year+"-"+mon+"-"+day+" "+time;
}
//-->
</SCRIPT>
<body leftmargin="5" topmargin="5" onload="loadOPML();">
<a href="#" onclick="addBlogURL();"><font size="2px" color="#000000" face="Verdana"><b>Add</b></font></a> <a href="#" onclick="refresh()"><font size="2px" color="#000000" face="Verdana"><b>Refresh</b></font></a><br>
<table border="0" width="260">
<tr>
<td width="20"><img src="list.gif"></td>
<td colspan="2"><a href="#" onclick="showAllBlogItem();"><font size="2px" color="#666666" face="Verdana"><i><div id="count">Feeds Count...</div></i></font></a></td>
</tr>
</table>
<div id="itemlist">
<table border="0" width="260">
<tr>
<td width="20"> </td>
<td width="24"><img src="blog.gif"></td>
<td>Loading...</td>
</tr>
</table>
</div>
<div id="log">
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -