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

📄 browserio.js

📁 dojo与json创建无限级树的时候,当在父结点下添加了一个新结点,我怎么让父亲结点重新调用json加载一下子结点内容.
💻 JS
📖 第 1 页 / 共 2 页
字号:
/*	Copyright (c) 2004-2006, The Dojo Foundation	All Rights Reserved.	Licensed under the Academic Free License version 2.1 or above OR the	modified BSD license. For more information on Dojo licensing, see:		http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.io.BrowserIO");dojo.require("dojo.io");dojo.require("dojo.lang.array");dojo.require("dojo.lang.func");dojo.require("dojo.string.extras");dojo.require("dojo.dom");dojo.require("dojo.undo.browser");dojo.io.checkChildrenForFile = function(node){	var hasFile = false;	var inputs = node.getElementsByTagName("input");	dojo.lang.forEach(inputs, function(input){		if(hasFile){ return; }		if(input.getAttribute("type")=="file"){			hasFile = true;		}	});	return hasFile;}dojo.io.formHasFile = function(formNode){	return dojo.io.checkChildrenForFile(formNode);}dojo.io.updateNode = function(node, urlOrArgs){	node = dojo.byId(node);	var args = urlOrArgs;	if(dojo.lang.isString(urlOrArgs)){		args = { url: urlOrArgs };	}	args.mimetype = "text/html";	args.load = function(t, d, e){		while(node.firstChild){			if(dojo["event"]){				try{					dojo.event.browser.clean(node.firstChild);				}catch(e){}			}			node.removeChild(node.firstChild);		}		node.innerHTML = d;	};	dojo.io.bind(args);}dojo.io.formFilter = function(node) {	var type = (node.type||"").toLowerCase();	return !node.disabled && node.name		&& !dojo.lang.inArray(type, ["file", "submit", "image", "reset", "button"]);}// TODO: Move to htmlUtilsdojo.io.encodeForm = function(formNode, encoding, formFilter){	if((!formNode)||(!formNode.tagName)||(!formNode.tagName.toLowerCase() == "form")){		dojo.raise("Attempted to encode a non-form element.");	}	if(!formFilter) { formFilter = dojo.io.formFilter; }	var enc = /utf/i.test(encoding||"") ? encodeURIComponent : dojo.string.encodeAscii;	var values = [];	for(var i = 0; i < formNode.elements.length; i++){		var elm = formNode.elements[i];		if(!elm || elm.tagName.toLowerCase() == "fieldset" || !formFilter(elm)) { continue; }		var name = enc(elm.name);		var type = elm.type.toLowerCase();		if(type == "select-multiple"){			for(var j = 0; j < elm.options.length; j++){				if(elm.options[j].selected) {					values.push(name + "=" + enc(elm.options[j].value));				}			}		}else if(dojo.lang.inArray(type, ["radio", "checkbox"])){			if(elm.checked){				values.push(name + "=" + enc(elm.value));			}		}else{			values.push(name + "=" + enc(elm.value));		}	}	// now collect input type="image", which doesn't show up in the elements array	var inputs = formNode.getElementsByTagName("input");	for(var i = 0; i < inputs.length; i++) {		var input = inputs[i];		if(input.type.toLowerCase() == "image" && input.form == formNode			&& formFilter(input)) {			var name = enc(input.name);			values.push(name + "=" + enc(input.value));			values.push(name + ".x=0");			values.push(name + ".y=0");		}	}	return values.join("&") + "&";}dojo.io.FormBind = function(args) {	this.bindArgs = {};	if(args && args.formNode) {		this.init(args);	} else if(args) {		this.init({formNode: args});	}}dojo.lang.extend(dojo.io.FormBind, {	form: null,	bindArgs: null,	clickedButton: null,	init: function(args) {		var form = dojo.byId(args.formNode);		if(!form || !form.tagName || form.tagName.toLowerCase() != "form") {			throw new Error("FormBind: Couldn't apply, invalid form");		} else if(this.form == form) {			return;		} else if(this.form) {			throw new Error("FormBind: Already applied to a form");		}		dojo.lang.mixin(this.bindArgs, args);		this.form = form;		this.connect(form, "onsubmit", "submit");		for(var i = 0; i < form.elements.length; i++) {			var node = form.elements[i];			if(node && node.type && dojo.lang.inArray(node.type.toLowerCase(), ["submit", "button"])) {				this.connect(node, "onclick", "click");			}		}		var inputs = form.getElementsByTagName("input");		for(var i = 0; i < inputs.length; i++) {			var input = inputs[i];			if(input.type.toLowerCase() == "image" && input.form == form) {				this.connect(input, "onclick", "click");			}		}	},	onSubmit: function(form) {		return true;	},	submit: function(e) {		e.preventDefault();		if(this.onSubmit(this.form)) {			dojo.io.bind(dojo.lang.mixin(this.bindArgs, {				formFilter: dojo.lang.hitch(this, "formFilter")			}));		}	},	click: function(e) {		var node = e.currentTarget;		if(node.disabled) { return; }		this.clickedButton = node;	},	formFilter: function(node) {		var type = (node.type||"").toLowerCase();		var accept = false;		if(node.disabled || !node.name) {			accept = false;		} else if(dojo.lang.inArray(type, ["submit", "button", "image"])) {			if(!this.clickedButton) { this.clickedButton = node; }			accept = node == this.clickedButton;		} else {			accept = !dojo.lang.inArray(type, ["file", "submit", "reset", "button"]);		}		return accept;	},	// in case you don't have dojo.event.* pulled in	connect: function(srcObj, srcFcn, targetFcn) {		if(dojo.evalObjPath("dojo.event.connect")) {			dojo.event.connect(srcObj, srcFcn, this, targetFcn);		} else {			var fcn = dojo.lang.hitch(this, targetFcn);			srcObj[srcFcn] = function(e) {				if(!e) { e = window.event; }				if(!e.currentTarget) { e.currentTarget = e.srcElement; }				if(!e.preventDefault) { e.preventDefault = function() { window.event.returnValue = false; } }				fcn(e);			}		}	}});dojo.io.XMLHTTPTransport = new function(){	var _this = this;	var _cache = {}; // FIXME: make this public? do we even need to?	this.useCache = false; // if this is true, we'll cache unless kwArgs.useCache = false	this.preventCache = false; // if this is true, we'll always force GET requests to cache	// FIXME: Should this even be a function? or do we just hard code it in the next 2 functions?	function getCacheKey(url, query, method) {		return url + "|" + query + "|" + method.toLowerCase();	}	function addToCache(url, query, method, http) {		_cache[getCacheKey(url, query, method)] = http;	}	function getFromCache(url, query, method) {		return _cache[getCacheKey(url, query, method)];	}	this.clearCache = function() {		_cache = {};	}	// moved successful load stuff here	function doLoad(kwArgs, http, url, query, useCache) {		if(	((http.status>=200)&&(http.status<300))|| 	// allow any 2XX response code			(http.status==304)|| 						// get it out of the cache			(location.protocol=="file:" && (http.status==0 || http.status==undefined))||			(location.protocol=="chrome:" && (http.status==0 || http.status==undefined))		){			var ret;			if(kwArgs.method.toLowerCase() == "head"){				var headers = http.getAllResponseHeaders();				ret = {};				ret.toString = function(){ return headers; }				var values = headers.split(/[\r\n]+/g);				for(var i = 0; i < values.length; i++) {					var pair = values[i].match(/^([^:]+)\s*:\s*(.+)$/i);					if(pair) {						ret[pair[1]] = pair[2];					}				}			}else if(kwArgs.mimetype == "text/javascript"){				try{					ret = dj_eval(http.responseText);				}catch(e){					dojo.debug(e);					dojo.debug(http.responseText);					ret = null;				}			}else if(kwArgs.mimetype == "text/json"){				try{					ret = dj_eval("("+http.responseText+")");				}catch(e){					dojo.debug(e);					dojo.debug(http.responseText);					ret = false;				}			}else if((kwArgs.mimetype == "application/xml")||						(kwArgs.mimetype == "text/xml")){				ret = http.responseXML;				if(!ret || typeof ret == "string" || !http.getResponseHeader("Content-Type")) {					ret = dojo.dom.createDocumentFromText(http.responseText);				}			}else{				ret = http.responseText;			}			if(useCache){ // only cache successful responses				addToCache(url, query, kwArgs.method, http);			}			kwArgs[(typeof kwArgs.load == "function") ? "load" : "handle"]("load", ret, http, kwArgs);		}else{			var errObj = new dojo.io.Error("XMLHttpTransport Error: "+http.status+" "+http.statusText);

⌨️ 快捷键说明

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