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

📄 app.js

📁 ajax source code .
💻 JS
📖 第 1 页 / 共 5 页
字号:
			obj = obj.offsetParent;
		}
	} else if (obj.y) curtop += obj.y;
	return curtop;
}


var moduleGhost = document.createElement("div");
moduleGhost.id = "moduleGhost";

App.hide = function() {
	document.getElementById("application").style.display = "none";
}
App.show = function() {
	document.getElementById("siteInformation").style.display = "none";
	document.getElementById("application").style.display = "block";
}

App.displaySiteInformation = function(page, node) {	
	function display(response, container) {
		container.lastChild.innerHTML = response.responseText;
		node.onLoadHTML(container.lastChild);
	}	
	var infosBox = document.getElementById("siteInformation");
	infosBox.style.display = "block";
	infosBox.innerHTML = '<div style="margin-bottom:20px;text-align:center"><a id="backToPage" href="javascript:App.show()">? '+App.Loc.backToMyPage+'</a></div>'+
						'<div id="siteInformationFrame">'+App.Loc.loading+'</div>';
	Request.sendGET(page, display, infosBox);
	if (Browser.isMozilla) {
		setTimeout(App.hide, 1);
	} else {
		App.hide();
	}
	App.setBackButton();
}


App.setSignOutLink = function() {
	var footerLink_signIn = document.getElementById("footerLink_signIn");
	footerLink_signIn.innerHTML = App.Loc.footerLink_signOut;
	footerLink_signIn.onclick = function() {
		function signOutResponse() {
			window.location.reload(true);
		}
		Request.sendGET('userSignOut.php', signOutResponse);
	}
}

App.Start = function() {

	document.getElementById("addContentLink").innerHTML = 
		(App.mode=='userPage') ? App.Loc.addContent : App.Loc.moreContent;
	/*if (App.mode=='userPage') {
		document.getElementById("appOptionsLink").innerHTML = App.Loc.appOptions;
	} else {
		document.getElementById("appOptionsLink").parentNode.style.display = 'none';
	}*/
	
	document.getElementById("collapseAllLink").innerHTML = App.Loc.collapseAll;
	document.getElementById("expandAllLink").innerHTML = App.Loc.expandAll;
	
	var footerLink_about = document.getElementById("footerLink_about");
	footerLink_about.innerHTML = App.Loc.footerLink_about;
	footerLink_about.onclick = function() {
		if (App.lang=='fr') {
			App.displaySiteInformation('loc/'+App.lang+'_'+this.getAttribute("page"), this);
		} else {
			App.displaySiteInformation('loc/en_'+this.getAttribute("page"), this);
		}
	}
	
	document.getElementById("footerLink_blog").innerHTML = App.Loc.footerLink_blog;
	document.getElementById("footerLink_feedback").innerHTML = App.Loc.footerLink_feedback;
	
	var footerLink_privacy = document.getElementById("footerLink_privacy");
	footerLink_privacy.innerHTML = App.Loc.footerLink_privacy;
	footerLink_privacy.onclick = function() {
		App.displaySiteInformation('loc/en_'+this.getAttribute("page"), this);
	}
	
	var footerLink_tos = document.getElementById("footerLink_tos");
	footerLink_tos.innerHTML = App.Loc.footerLink_tos;
	footerLink_tos.onclick = function() {
		App.displaySiteInformation('loc/en_'+this.getAttribute("page"), this);
	}
	
	var footerLink_contact = document.getElementById("footerLink_contact");
	footerLink_contact.innerHTML = App.Loc.footerLink_contact;
	footerLink_contact.onclick = function() {
		if (App.lang=='fr') {
			App.displaySiteInformation('loc/'+App.lang+'_'+this.getAttribute("page"), this);
		} else {
			App.displaySiteInformation('loc/en_'+this.getAttribute("page"), this);
		}
	}
	
	/*var footerLink_webmaster = document.getElementById("footerLink_webmaster");
	footerLink_webmaster.innerHTML = App.Loc.footerLink_webmaster;
	footerLink_webmaster.onclick = function() {
		if (App.lang=='fr') {
			App.displaySiteInformation('loc/'+App.lang+'_'+this.getAttribute("page"), this);
		} else {
			App.displaySiteInformation('loc/en_'+this.getAttribute("page"), this);
		}
	}*/
	
	if (App.registeredUser) {
		App.setSignOutLink();
	} else {
		var footerLink_signIn = document.getElementById("footerLink_signIn");
		footerLink_signIn.innerHTML = App.Loc.footerLink_signIn;
		footerLink_signIn.onLoadHTML = function(node) {
			App.applySignInEvents(node);
		}
		footerLink_signIn.onclick = function() {			
			App.displaySiteInformation('loc/'+App.lang+'_'+this.getAttribute("page"), this);
		}
	}
	
	App.savingStatusElm = document.getElementById("savingStatus");

	function doPageTitleEvent() {
		var div = document.getElementById("pageTitle");
		div.firstChild.onmouseover = function() {
			this.style.backgroundColor = "#FAFAFA";
			this.style.border = "1px solid #EEE";
		}
		div.firstChild.onmouseout = function() {
			this.style.backgroundColor = "transparent";
			this.style.border = "none";
		}
		div.firstChild.onclick = function() {
			this.onclick = null;
			this.onmouseout();
			this.onmouseover = null;
			var titleValue = this.firstChild.nodeValue;
			var titleWidth = this.offsetWidth;
			this.innerHTML = '<input type="text" class="inputPageTitle" maxlength="80" value="'+titleValue+'" style="width:'+titleWidth+'px"/>';
			var inputElm = this.firstChild;
			inputElm.focus();
			inputElm.select();
			inputElm.attachEvent('onkeydown',onEnterDown);
			function onEnterDown() {
				if (window.event.keyCode==13) {
					inputElm.onblur();
				}
			}
			inputElm.onkeyup = function() {
				this.style.width = (this.value.length*8)+20 + "px";
			}
			inputElm.onblur = function() {
				var value = (this.value=='') ? 'MyWeb' : Utils.htmlEncode(this.value);
				this.parentNode.innerHTML = value;
				if (this.value != titleValue) {
					App.saveUserData('pageTitle', value);					
					document.title = value;
				}
				doPageTitleEvent();
			}
		}
	}
	
	if (App.mode=='userPage') doPageTitleEvent();

	var container = document.getElementById("modulesArea");
	var columns = document.createElement("div");
	App.columnsObj = {};
	columns.id = "columns";
	App.numCol = 3;

	var div1 = document.createElement("div");
	div1.style.width = Math.round(100/App.numCol) + "%";
	div1.style.minHeight = "1px";
	div1.className = "divColonne";
	div1.setAttribute("colNum", 1);
	App.columnsObj.col1 = div1;

	var div2 = document.createElement("div");
	div2.style.width = Math.round(100/App.numCol) + "%";
	div2.style.minHeight = "1px";
	div2.className = "divColonne";
	div2.setAttribute("colNum", 2);
	App.columnsObj.col2 = div2;

	var div3 = document.createElement("div");
	div3.style.width = Math.round(100/App.numCol) + "%";
	div3.style.minHeight = "1px";
	div3.className = "divColonne";
	div3.setAttribute("colNum", 3);
	App.columnsObj.col3 = div3;

	columns.appendChild(div1);
	columns.appendChild(div2);
	columns.appendChild(div3);

	var divFeedReader = document.createElement("div");
	divFeedReader.id = "feedReader";
	container.appendChild(columns);
	container.appendChild(divFeedReader);

	App.FeedReader.elm = document.getElementById("feedReader");
	
	/*function makeObject(obj) {
		return obj;
	}*/
	
	function displayModules(response) {
		var rootNode = response.responseXML.documentElement;	
		var mods = rootNode.getElementsByTagName("mod");
		
		var pageTitle = rootNode.getElementsByTagName("pageTitle")[0].firstChild;
		
		var text = document.createTextNode((pageTitle) ? pageTitle.nodeValue : App.Loc.typePageTitle);
		document.getElementById("pageTitle").firstChild.appendChild(text);		
		if (pageTitle) document.title = pageTitle.nodeValue;
		
		var feedsID = rootNode.getElementsByTagName("userFeeds")[0].firstChild;
		User.feedsId = (feedsID) ? feedsID.nodeValue : null;
		
		App.Nav.featuredFeedsId = rootNode.getElementsByTagName("featuredFeeds")[0].firstChild.nodeValue;
		App.Nav.defaultFeedsId = rootNode.getElementsByTagName("defaultFeeds")[0].firstChild.nodeValue;
		
		var ln = mods.length;
		for (var z=0; z<ln; z++) {
			var id = mods[z].getAttribute("id");
			var column = mods[z].getAttribute("column");
			var name = mods[z].getAttribute("name");
			var status = mods[z].getAttribute("status");
			var share = mods[z].getAttribute("share");			
			var title = mods[z].getElementsByTagName("title")[0];
			title = (title.firstChild) ? title.firstChild.nodeValue : '';
			var data = mods[z].getElementsByTagName("data")[0];
			ln2 = data.childNodes.length;
			var dataObj = {id:id, container:column, moduleName:name, title:title, status:status, share:share};
			var obj = new Object();
			for (var n=0; n<ln2; n++) {
				if (name=="RssReader" && data.childNodes[n].nodeName=="feedId") 
					dataObj.feedUrl = data.childNodes[n].getAttribute("url");
				if (data.childNodes[n].firstChild) 
					obj[data.childNodes[n].nodeName] = data.childNodes[n].firstChild.nodeValue;
			}
			dataObj.data = obj;
			App.moduleList.push(new Module(dataObj));
			//var obj = eval('makeObject('+mods[z].firstChild.firstChild.nodeValue+')');
		}		
		
		if (App.subscribeOnLoad) {
			App.subscribeOnLoad = false;
			var startMsgDiv = document.getElementById("startMsg");
			startMsgDiv.innerHTML = App.Loc.addingNewFeed+"...";
			
			/*
			function addFeedResponse(response, feedUrl, id) {
				if (response.responseText == '' || response.responseXML.documentElement==null || response.responseXML.documentElement.nodeName=="parsererror") { // si le flux n'est pas valide
					startMsgDiv.innerHTML = App.Loc.feedNotValid;
				} else {
					App.Nav.isFeedsUpdated = true;
					setTimeout(App.Nav.openMyFeeds,1);
					var defaultDataObj = App.Modules.RssReaderInfos.defaultObj;
					var dataObj = new Object();
					for (var i in defaultDataObj) dataObj[i] = defaultDataObj[i];
					dataObj.data = new Object();
					var feed = new Feed(response);
					dataObj.title = feed.title;
					dataObj.feedUrl = feedUrl;
					dataObj.data.feedId = id;
					dataObj.container = 2;
					dataObj.admin = false;
					dataObj.isNew = true;
					var mod = new Module(dataObj);
					App.moduleList.push(mod);
					App.Nav.removeModuleBox();
					App.saveUserData('new', mod);
				}
			}
			
			App.addNewFeed(inputFeed.value, addFeedResponse);*/
			
			
		} else {
			document.getElementById("startMsg").style.display = "none";
			document.getElementById("application").style.display = "block";
			document.getElementById("footer").style.display = "block";
		}
	
	}	
	Request.sendGET('http://localhost/netvibes/getUserData.php.xml', displayModules);
}


var Feed = function(feed) {
	this.root = feed.responseXML.documentElement;	
	this.title = this.root.getElementsByTagName("title")[0].firstChild.nodeValue;
	this.type = (this.root.nodeName=="feed") ? 1 : 0;
	this.items = (this.type==1) ? this.root.getElementsByTagName("entry")
		: this.root.getElementsByTagName("item");
	this.htmlUrl = (this.type==1) ? this.root.getElementsByTagName("link")[0].getAttribute("href")
		: this.root.getElementsByTagName("link")[0].firstChild.nodeValue;
	var desc = (this.type==1) ? this.root.getElementsByTagName("tagline")[0].firstChild
		: this.root.getElementsByTagName("description")[0].firstChild;
	this.description = (desc) ? desc.nodeValue : '';
}
var FeedItem = function(item) {
}

App.addNewFeed = function(feedUrl, callBack) {
	if (App.mode=='userPage') App.addNewFeedNow(feedUrl, callBack);
}

App.addNewFeedNow = function(feedUrl, callBack) {	
	var feedResponse;
	
	function getFeedId(response) {
		var ids = response.responseText.split(",");
		if (User.feedsId==null) User.feedsId = ids[1];
		callBack(feedResponse, feedUrl, ids[0]);
	}

	function checkFeed(response) {		
		feedResponse = response;
		if (response.responseText == '' || response.responseXML.documentElement==null 
			|| response.responseXML.documentElement.nodeName=="parsererror") { // si le flux n'est pas valide
			callBack(feedResponse, feedUrl);
		} else {
			var feed = new Feed(response);
			var data = 'userFeedsId='+User.feedsId
					+'&title='+encodeURIComponent(feed.title)
					+'&xmlUrl='+encodeURIComponent(feedUrl)
					+'&htmlUrl='+encodeURIComponent(feed.htmlUrl)
					+'&description='+encodeURIComponent(feed.description);
			Request.sendPOST("addNewFeed.php", data, getFeedId);
		}
	}
	
	Request.sendGET(proxyURL+escape(feedUrl), checkFeed);
}

var Module = function(obj) {
	var self = this;
	this.dataObj = obj;
	this.editMode = false;
	this.loaded = false;
	this.adminMode = (obj.admin) ? true : false;
	this.isNew = (obj.isNew) ? true : false;	

	this.build = function() {

		var divModule = document.createElement("div");
		this.elm_module = divModule;
		divModule.className = "module";
		divModule.dataObj = obj;

		var divModuleFrame = document.createElement("div");
		this.elm_moduleFrame = divModuleFrame;
		divModuleFrame.className = "moduleFrame";

		var divModuleHeader = document.createElement("div");
		this.elm_moduleHeader = divModuleHeader;
		divModuleHeader.className = "moduleHeader";
		if (this.adminMode) divModuleHeader.style.cursor = "default";
		
		divModuleHeader.onmouseover = function(){
			self.highlight();
		}
		divModuleHeader.onmouseout = function(){
			self.unHighlight();
		}

		var divShowHide = document.createElement("div");
		this.elm_showHide = divShowHide;
		divShowHide.className = "showHide";
		divShowHide.innerHTML = (obj.status==0) ? '<img src="img/showMod.gif"/>' : '<img src="img/hideMod.gif"/>';

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -