⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 step7-tree.html

📁 ajax快速入门,主要讲解原理与部门实现
💻 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\">&nbsp;</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>&nbsp;<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">&nbsp;</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 + -