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

📄 browser.js

📁 OA系统实现以下功能: a、个人办公,我的办公桌 b、公文管理 c、工作流程 d、组织管理 e. 权限管理
💻 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.storage.browser");dojo.require("dojo.storage");dojo.require("dojo.flash");dojo.require("dojo.json");dojo.require("dojo.uri.*");dojo.storage.browser.FileStorageProvider = function () {};dojo.inherits(dojo.storage.browser.FileStorageProvider, dojo.storage);dojo.storage.browser.FileStorageProvider._KEY_INDEX_FILENAME = "__dojoAllKeys";dojo.storage.browser.FileStorageProvider._APPLET_ID = "__dojoFileJavaObj";dojo.lang.extend(dojo.storage.browser.FileStorageProvider, {namespace:"default", initialized:false, _available:null, _statusHandler:null, _keyIndex:new Array(), initialize:function () {	if (djConfig["disableFileStorage"] == true) {		return;	}	this._loadKeyIndex();	this.initialized = true;	dojo.storage.manager.loaded();}, isAvailable:function () {	this._available = false;	var protocol = window.location.protocol;	if (protocol.indexOf("file") != -1 || protocol.indexOf("chrome") != -1) {		this._available = this._isAvailableXPCOM();		if (this._available == false) {			this._available = this._isAvailableActiveX();		}	}	return this._available;}, put:function (key, value, resultsHandler) {	if (this.isValidKey(key) == false) {		dojo.raise("Invalid key given: " + key);	}	this._statusHandler = resultsHandler;	try {		this._save(key, value);		resultsHandler.call(null, dojo.storage.SUCCESS, key);	}	catch (e) {		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 results = this._load(key);	return results;}, getKeys:function () {	return this._keyIndex;}, hasKey:function (key) {	if (this.isValidKey(key) == false) {		dojo.raise("Invalid key given: " + key);	}	this._loadKeyIndex();	var exists = false;	for (var i = 0; i < this._keyIndex.length; i++) {		if (this._keyIndex[i] == key) {			exists = true;		}	}	return exists;}, clear:function () {	this._loadKeyIndex();	var keyIndex = new Array();	for (var i = 0; i < this._keyIndex.length; i++) {		keyIndex[keyIndex.length] = new String(this._keyIndex[i]);	}	for (var i = 0; i < keyIndex.length; i++) {		this.remove(keyIndex[i]);	}}, remove:function (key) {	if (this.isValidKey(key) == false) {		dojo.raise("Invalid key given: " + key);	}	this._loadKeyIndex();	for (var i = 0; i < this._keyIndex.length; i++) {		if (this._keyIndex[i] == key) {			this._keyIndex.splice(i, 1);			break;		}	}	this._save(dojo.storage.browser.FileStorageProvider._KEY_INDEX_FILENAME, this._keyIndex, false);	var fullPath = this._getPagePath() + key + ".txt";	if (this._isAvailableXPCOM()) {		this._removeXPCOM(fullPath);	} else {		if (this._isAvailableActiveX()) {			this._removeActiveX(fullPath);		}	}}, 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.FileStorageProvider";}, _save:function (key, value, updateKeyIndex) {	if (typeof updateKeyIndex == "undefined") {		updateKeyIndex = true;	}	if (dojo.lang.isString(value) == false) {		value = dojo.json.serialize(value);		value = "/* JavaScript */\n" + value + "\n\n";	}	var fullPath = this._getPagePath() + key + ".txt";	if (this._isAvailableXPCOM()) {		this._saveFileXPCOM(fullPath, value);	} else {		if (this._isAvailableActiveX()) {			this._saveFileActiveX(fullPath, value);		}	}	if (updateKeyIndex) {		this._updateKeyIndex(key);	}}, _load:function (key) {	var fullPath = this._getPagePath() + key + ".txt";	var results = null;	if (this._isAvailableXPCOM()) {		results = this._loadFileXPCOM(fullPath);	} else {		if (this._isAvailableActiveX()) {			results = this._loadFileActiveX(fullPath);		} else {			if (this._isAvailableJava()) {				results = this._loadFileJava(fullPath);			}		}	}	if (results == null) {		return null;	}	if (!dojo.lang.isUndefined(results) && results != null && /^\/\* JavaScript \*\//.test(results)) {		results = dojo.json.evalJson(results);	}	return results;}, _updateKeyIndex:function (key) {	this._loadKeyIndex();	var alreadyAdded = false;	for (var i = 0; i < this._keyIndex.length; i++) {		if (this._keyIndex[i] == key) {			alreadyAdded = true;			break;		}	}	if (alreadyAdded == false) {		this._keyIndex[this._keyIndex.length] = key;	}	this._save(dojo.storage.browser.FileStorageProvider._KEY_INDEX_FILENAME, this._keyIndex, false);}, _loadKeyIndex:function () {	var indexContents = this._load(dojo.storage.browser.FileStorageProvider._KEY_INDEX_FILENAME);	if (indexContents == null) {		this._keyIndex = new Array();	} else {		this._keyIndex = indexContents;	}}, _saveFileXPCOM:function (filename, value) {	try {		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");		var f = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);		f.initWithPath(filename);		var ouputStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);		ouputStream.init(f, 32 | 4 | 8, 256 + 128, null);		ouputStream.write(value, value.length);		ouputStream.close();	}	catch (e) {		var msg = e.toString();		if (e.name && e.message) {			msg = e.name + ": " + e.message;		}		dojo.raise("dojo.storage.browser.FileStorageProvider._saveFileXPCOM(): " + msg);	}}, _loadFileXPCOM:function (filename) {	try {		netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");		var f = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);		f.initWithPath(filename);		if (f.exists() == false) {			return null;		}		var inp = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);		inp.init(f, 1, 4, null);		var inputStream = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream);		inputStream.init(inp);		var results = inputStream.read(inputStream.available());		return results;	}	catch (e) {		var msg = e.toString();		if (e.name && e.message) {			msg = e.name + ": " + e.message;		}		dojo.raise("dojo.storage.browser.FileStorageProvider._loadFileXPCOM(): " + msg);	}	return null;}, _saveFileActiveX:function (filename, value) {	try {		var fileSystem = new ActiveXObject("Scripting.FileSystemObject");		var f = fileSystem.OpenTextFile(filename, 2, true);		f.Write(value);		f.Close();	}	catch (e) {		var msg = e.toString();		if (e.name && e.message) {			msg = e.name + ": " + e.message;		}		dojo.raise("dojo.storage.browser.FileStorageProvider._saveFileActiveX(): " + msg);	}}, _loadFileActiveX:function (filename) {	try {		var fileSystem = new ActiveXObject("Scripting.FileSystemObject");		if (fileSystem.FileExists(filename) == false) {			return null;		}		var f = fileSystem.OpenTextFile(filename, 1);		var results = f.ReadAll();		f.Close();		return results;	}	catch (e) {		var msg = e.toString();		if (e.name && e.message) {			msg = e.name + ": " + e.message;		}		dojo.raise("dojo.storage.browser.FileStorageProvider._loadFileActiveX(): " + msg);	}}, _saveFileJava:function (filename, value) {	try {		var applet = dojo.byId(dojo.storage.browser.FileStorageProvider._APPLET_ID);		applet.save(filename, value);	}	catch (e) {		var msg = e.toString();		if (e.name && e.message) {			msg = e.name + ": " + e.message;		}		dojo.raise("dojo.storage.browser.FileStorageProvider._saveFileJava(): " + msg);	}}, _loadFileJava:function (filename) {	try {		var applet = dojo.byId(dojo.storage.browser.FileStorageProvider._APPLET_ID);		var results = applet.load(filename);		return results;	}	catch (e) {		var msg = e.toString();		if (e.name && e.message) {			msg = e.name + ": " + e.message;		}		dojo.raise("dojo.storage.browser.FileStorageProvider._loadFileJava(): " + msg);	}}, _isAvailableActiveX:function () {	try {		if (window.ActiveXObject) {			var fileSystem = new window.ActiveXObject("Scripting.FileSystemObject");			return true;		}	}

⌨️ 快捷键说明

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