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

📄 stabile.js

📁 dojo-0.4.0-ajax.zip ajax一个应用。在页面上可以直接用标签。此为ajax的框架
💻 JS
字号:
/*	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*/// Maintain state of widgets when user hits back/forward buttondojo.provide("dojo.widget.html.stabile");dojo.widget.html.stabile = {	// Characters to quote in single-quoted regexprs	_sqQuotables: new RegExp("([\\\\'])", "g"),	// Current depth.	_depth: 0,	// Set to true when calling v.toString, to sniff for infinite	// recursion.	_recur: false,	// Levels of nesting of Array and object displays.	// If when >= depth, no display or array or object internals.	depthLimit: 2};//// PUBLIC METHODS// Get the state stored for the widget with the given ID, or undefined// if none.// dojo.widget.html.stabile.getState = function(id){	dojo.widget.html.stabile.setup();	return dojo.widget.html.stabile.widgetState[id];}// Set the state stored for the widget with the given ID.  If isCommit// is true, commits all widget state to more stable storage.// dojo.widget.html.stabile.setState = function(id, state, isCommit){	dojo.widget.html.stabile.setup();	dojo.widget.html.stabile.widgetState[id] = state;	if(isCommit){		dojo.widget.html.stabile.commit(dojo.widget.html.stabile.widgetState);	}}// Sets up widgetState: a hash keyed by widgetId, maps to an object// or array writable with "describe".  If there is data in the widget// storage area, use it, otherwise initialize an empty object.// dojo.widget.html.stabile.setup = function(){	if(!dojo.widget.html.stabile.widgetState){		var text = dojo.widget.html.stabile.getStorage().value;		dojo.widget.html.stabile.widgetState = text ? dj_eval("("+text+")") : {};	}}// Commits all widget state to more stable storage, so if the user// navigates away and returns, it can be restored.// dojo.widget.html.stabile.commit = function(state){	dojo.widget.html.stabile.getStorage().value = dojo.widget.html.stabile.description(state);}// Return a JSON "description string" for the given value.// Supports only core JavaScript types with literals, plus Date,// and cyclic structures are unsupported.// showAll defaults to false -- if true, this becomes a simple symbolic// object dumper, but you cannot "eval" the output.//dojo.widget.html.stabile.description = function(v, showAll){	// Save and later restore dojo.widget.html.stabile._depth;	var depth = dojo.widget.html.stabile._depth;	var describeThis = function() {		 return this.description(this, true);	} 		try {		if(v===void(0)){			return "undefined";		}		if(v===null){			return "null";		}		if(typeof(v)=="boolean" || typeof(v)=="number"		    || v instanceof Boolean || v instanceof Number){			return v.toString();		}		if(typeof(v)=="string" || v instanceof String){			// Quote strings and their contents as required.			// Replacing by $& fails in IE 5.0			var v1 = v.replace(dojo.widget.html.stabile._sqQuotables, "\\$1"); 			v1 = v1.replace(/\n/g, "\\n");			v1 = v1.replace(/\r/g, "\\r");			// Any other important special cases?			return "'"+v1+"'";		}		if(v instanceof Date){			// Create a data constructor.			return "new Date("+d.getFullYear+","+d.getMonth()+","+d.getDate()+")";		}		var d;		if(v instanceof Array || v.push){			// "push" test needed for KHTML/Safari, don't know why -cp			if(depth>=dojo.widget.html.stabile.depthLimit)			  return "[ ... ]";			d = "[";			var first = true;			dojo.widget.html.stabile._depth++;			for(var i=0; i<v.length; i++){				// Skip functions and undefined values				// if(v[i]==undef || typeof(v[i])=="function")				//   continue;				if(first){					first = false;				}else{					d += ",";				}				d+=arguments.callee(v[i], showAll);			}			return d+"]";		}		if(v.constructor==Object		    || v.toString==describeThis){			if(depth>=dojo.widget.html.stabile.depthLimit)			  return "{ ... }";			// Instanceof Hash is good, or if we just use Objects,			// we can say v.constructor==Object.			// IE (5?) lacks hasOwnProperty, but perhaps objects do not always			// have prototypes??			if(typeof(v.hasOwnProperty)!="function" && v.prototype){				throw new Error("description: "+v+" not supported by script engine");			}			var first = true;			d = "{";			dojo.widget.html.stabile._depth++;			for(var key in v){				// Skip values that are functions or undefined.				if(v[key]==void(0) || typeof(v[key])=="function")					continue;				if(first){					first = false;				}else{					d += ", ";				}				var kd = key;				// If the key is not a legal identifier, use its description.				// For strings this will quote the stirng.				if(!kd.match(/^[a-zA-Z_][a-zA-Z0-9_]*$/)){					kd = arguments.callee(key, showAll);				}				d += kd+": "+arguments.callee(v[key], showAll);			}			return d+"}";		}		if(showAll){			if(dojo.widget.html.stabile._recur){				// Save the original definitions of toString;				var objectToString = Object.prototype.toString;				return objectToString.apply(v, []);			}else{				dojo.widget.html.stabile._recur = true;				return v.toString();			}		}else{			// log("Description? "+v.toString()+", "+typeof(v));			throw new Error("Unknown type: "+v);			return "'unknown'";		}	} finally {		// Always restore the global current depth.		dojo.widget.html.stabile._depth = depth;	}}//// PRIVATE TO MODULE// Gets an object (form field) with a read/write "value" property.// dojo.widget.html.stabile.getStorage = function(){	if (dojo.widget.html.stabile.dataField) {		return dojo.widget.html.stabile.dataField;	}	var form = document.forms._dojo_form;	return dojo.widget.html.stabile.dataField = form ? form.stabile : {value: ""};}

⌨️ 快捷键说明

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