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

📄 browser.js

📁 js基本操作
💻 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*/dojo.provide("dojo.storage.browser");dojo.require("dojo.storage");dojo.require("dojo.flash");dojo.require("dojo.json");dojo.require("dojo.uri.*");dojo.storage.browser.WhatWGStorageProvider = function(){	// summary:	//		Storage provider that uses WHAT Working Group features in Firefox 2 	//		to achieve permanent storage.	// description: 	//		The WHAT WG storage API is documented at 	//		http://www.whatwg.org/specs/web-apps/current-work/#scs-client-side	//	//		You can disable this storage provider with the following djConfig	//		variable:	//		var djConfig = { disableWhatWGStorage: true };	//			//		Authors of this storage provider-		//			JB Boisseau, jb.boisseau@eutech-ssii.com	//			Brad Neuberg, bkn3@columbia.edu }dojo.inherits(dojo.storage.browser.WhatWGStorageProvider, dojo.storage);// instance methods and propertiesdojo.lang.extend(dojo.storage.browser.WhatWGStorageProvider, {	namespace: "default",	initialized: false,		_domain: null,	_available: null,	_statusHandler: null,		initialize: function(){		if(djConfig["disableWhatWGStorage"] == true){			return;		}				// get current domain		this._domain = location.hostname;				// indicate that this storage provider is now loaded		this.initialized = true;		dojo.storage.manager.loaded();		},		isAvailable: function(){		try{			var myStorage = globalStorage[location.hostname];		}catch(e){			this._available = false;			return this._available;		}				this._available = true;			return this._available;	},	put: function(key, value, resultsHandler){		if(this.isValidKey(key) == false){			dojo.raise("Invalid key given: " + key);		}							this._statusHandler = resultsHandler;				// serialize the value;		// handle strings differently so they have better performance		if(dojo.lang.isString(value)){			value = "string:" + value;		}else{			value = dojo.json.serialize(value);		}				// register for successful storage events		window.addEventListener("storage", function(evt){			// indicate we succeeded			resultsHandler.call(null, dojo.storage.SUCCESS, key);		}, false);				// try to store the value			try{			var myStorage = globalStorage[this._domain];			myStorage.setItem(key,value);		}catch(e){			// indicate we failed			this._statusHandler.call(null, dojo.storage.FAILED, 									key, e.toString());		}	},	get: function(key){		if(this.isValidKey(key) == false){			dojo.raise("Invalid key given: " + key);		}				var myStorage = globalStorage[this._domain];				var results = myStorage.getItem(key);		if(results == null){			return null;		}			results = results.value;				// destringify the content back into a 		// real JavaScript object;		// handle strings differently so they have better performance		if(!dojo.lang.isUndefined(results) && results != null 			 && /^string:/.test(results)){			results = results.substring("string:".length);		}else{			results = dojo.json.evalJson(results);		}				return results;	},	getKeys: function(){		var myStorage = globalStorage[this._domain];		var keysArray = new Array();		for(i=0; i<myStorage.length;i++){			keysArray[i] = myStorage.key(i);		}				return keysArray;	},	clear: function(){		var myStorage = globalStorage[this._domain];		var keys = new Array();		for(var i = 0; i < myStorage.length; i++){			keys[keys.length] = myStorage.key(i);		}				for(var i = 0; i < keys.length; i++){			myStorage.removeItem(keys[i]);		}	},		remove: function(key){		var myStorage = globalStorage[this._domain];		myStorage.removeItem(key);	},		isPermanent: function(){		return true;	},	getMaximumSize: function(){		return dojo.storage.SIZE_NO_LIMIT;	},	hasSettingsUI: function(){		return false;	},		showSettingsUI: function(){		dojo.raise(this.getType() + " does not support a storage settings user-interface");	},		hideSettingsUI: function(){		dojo.raise(this.getType() + " does not support a storage settings user-interface");	},		getType: function(){		return "dojo.storage.browser.WhatWGStorageProvider";	}});dojo.storage.browser.FlashStorageProvider = function(){	// summary: Storage provider that uses features in Flash to achieve permanent storage	// description:	//		Authors of this storage provider-	//			Brad Neuberg, bkn3@columbia.edu	}dojo.inherits(dojo.storage.browser.FlashStorageProvider, dojo.storage);// instance methods and propertiesdojo.lang.extend(dojo.storage.browser.FlashStorageProvider, {	namespace: "default",	initialized: false,	_available: null,	_statusHandler: null,		initialize: function(){		if(djConfig["disableFlashStorage"] == true){			return;		}				// initialize our Flash		var loadedListener = function(){			dojo.storage._flashLoaded();		}		dojo.flash.addLoadedListener(loadedListener);		var swfloc6 = dojo.uri.dojoUri("Storage_version6.swf").toString();		var swfloc8 = dojo.uri.dojoUri("Storage_version8.swf").toString();		dojo.flash.setSwf({flash6: swfloc6, flash8: swfloc8, visible: false});	},		isAvailable: function(){		if(djConfig["disableFlashStorage"] == true){			this._available = false;		}else{			this._available = true;		}				return this._available;	},	put: function(key, value, resultsHandler){		if(this.isValidKey(key) == false){			dojo.raise("Invalid key given: " + key);		}					this._statusHandler = resultsHandler;				// serialize the value;		// handle strings differently so they have better performance		if(dojo.lang.isString(value)){			value = "string:" + value;		}else{			value = dojo.json.serialize(value);		}				dojo.flash.comm.put(key, value, this.namespace);	},	get: function(key){		if(this.isValidKey(key) == false){			dojo.raise("Invalid key given: " + key);		}				var results = dojo.flash.comm.get(key, this.namespace);		if(results == ""){			return null;		}    		// destringify the content back into a 		// real JavaScript object;		// handle strings differently so they have better performance		if(!dojo.lang.isUndefined(results) && results != null 			 && /^string:/.test(results)){			results = results.substring("string:".length);		}else{			results = dojo.json.evalJson(results);		}    		return results;	},	getKeys: function(){		var results = dojo.flash.comm.getKeys(this.namespace);				if(results == ""){			return [];		}		// the results are returned comma seperated; split them		return results.split(",");	},	clear: function(){		dojo.flash.comm.clear(this.namespace);	},		remove: function(key){		// summary: 		//		Note- This one method is not implemented on the		// 		FlashStorageProvider yet				dojo.unimplemented("dojo.storage.browser.FlashStorageProvider.remove");	},		isPermanent: function(){		return true;	},	getMaximumSize: function(){		return dojo.storage.SIZE_NO_LIMIT;	},	hasSettingsUI: function(){		return true;	},	showSettingsUI: function(){		dojo.flash.comm.showSettings();		dojo.flash.obj.setVisible(true);		dojo.flash.obj.center();	},	hideSettingsUI: function(){		// hide the dialog		dojo.flash.obj.setVisible(false);				// call anyone who wants to know the dialog is		// now hidden		if(dojo.storage.onHideSettingsUI != null &&			!dojo.lang.isUndefined(dojo.storage.onHideSettingsUI)){			dojo.storage.onHideSettingsUI.call(null);			}	},		getType: function(){		return "dojo.storage.browser.FlashStorageProvider";	},		/** Called when the Flash is finished loading. */	_flashLoaded: function(){		this._initialized = true;		// indicate that this storage provider is now loaded		dojo.storage.manager.loaded();	},		//	Called if the storage system needs to tell us about the status	//	of a put() request. 	_onStatus: function(statusResult, key){		var ds = dojo.storage;		var dfo = dojo.flash.obj;				if(statusResult == ds.PENDING){			dfo.center();			dfo.setVisible(true);		}else{			dfo.setVisible(false);		}				if((!dj_undef("_statusHandler", ds))&&(ds._statusHandler != null)){			ds._statusHandler.call(null, statusResult, key);				}	}});// register the existence of our storage providersdojo.storage.manager.register("dojo.storage.browser.WhatWGStorageProvider",								new dojo.storage.browser.WhatWGStorageProvider());dojo.storage.manager.register("dojo.storage.browser.FlashStorageProvider",								new dojo.storage.browser.FlashStorageProvider());// now that we are loaded and registered tell the storage manager to initialize// itselfdojo.storage.manager.initialize();

⌨️ 快捷键说明

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