browser.js

来自「Hippo CMS是一个以信息为中心的开源内容管理系统。Hippo CMS目标是」· JavaScript 代码 · 共 551 行 · 第 1/2 页

JS
551
字号
	catch (e) {
		dojo.debug(e);
	}
	return false;
}, _isAvailableXPCOM:function () {
	try {
		if (window.Components) {
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
			Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
			return true;
		}
	}
	catch (e) {
		dojo.debug(e);
	}
	return false;
}, _isAvailableJava:function () {
	try {
		if (dojo.render.html.safari == true || dojo.render.html.opera == true()) {
			if (navigator.javaEnabled() == true) {
				return true;
			}
		}
	}
	catch (e) {
		dojo.debug(e);
	}
	return false;
}, _getPagePath:function () {
	var path = window.location.pathname;
	if (/\.html?$/i.test(path)) {
		path = path.replace(/(?:\/|\\)?[^\.\/\\]*\.html?$/, "");
	}
	if (/^\/?[a-z]+\:/i.test(path)) {
		path = path.replace(/^\/?/, "");
		path = path.replace(/\//g, "\\");
	} else {
		if (/^[\/\\]{2,3}[^\/]/.test(path)) {
			path = path.replace(/^[\/\\]{2,3}/, "");
			path = path.replace(/\//g, "\\");
			path = "\\\\" + path;
		}
	}
	if (/\/$/.test(path) == false && /\\$/.test(path) == false) {
		if (/\//.test(path)) {
			path += "/";
		} else {
			path += "\\";
		}
	}
	path = unescape(path);
	return path;
}, _removeXPCOM: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 || f.isDirectory()) {
			return;
		}
		if (f.isFile()) {
			f.remove(false);
		}
	}
	catch (e) {
		dojo.raise("dojo.storage.browser.FileStorageProvider.remove(): " + e.toString());
	}
}, _removeActiveX:function (filename) {
	try {
		var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
		fileSystem.DeleteFile(filename);
	}
	catch (e) {
		dojo.raise("dojo.storage.browser.FileStorageProvider.remove(): " + e.toString());
	}
}, _removeJava:function (filename) {
	try {
		var applet = dojo.byId(dojo.storage.browser.FileStorageProvider._APPLET_ID);
		applet.remove(filename);
	}
	catch (e) {
		var msg = e.toString();
		if (e.name && e.message) {
			msg = e.name + ": " + e.message;
		}
		dojo.raise("dojo.storage.browser.FileStorageProvider._removeJava(): " + msg);
	}
}, _writeApplet:function () {
	var archive = dojo.uri.moduleUri("dojo", "../DojoFileStorageProvider.jar").toString();
	var tag = "<applet " + "id='" + dojo.storage.browser.FileStorageProvider._APPLET_ID + "' " + "style='position: absolute; top: -500px; left: -500px; width: 1px; height: 1px;' " + "code='DojoFileStorageProvider.class' " + "archive='" + archive + "' " + "width='1' " + "height='1' " + ">" + "</applet>";
	document.writeln(tag);
}});
dojo.storage.browser.WhatWGStorageProvider = function () {
};
dojo.inherits(dojo.storage.browser.WhatWGStorageProvider, dojo.storage);
dojo.lang.extend(dojo.storage.browser.WhatWGStorageProvider, {namespace:"default", initialized:false, _domain:null, _available:null, _statusHandler:null, initialize:function () {
	if (djConfig["disableWhatWGStorage"] == true) {
		return;
	}
	this._domain = location.hostname;
	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;
	if (dojo.lang.isString(value)) {
		value = "string:" + value;
	} else {
		value = dojo.json.serialize(value);
	}
	window.addEventListener("storage", function (evt) {
		resultsHandler.call(null, dojo.storage.SUCCESS, key);
	}, false);
	try {
		var myStorage = globalStorage[this._domain];
		myStorage.setItem(key, value);
	}
	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 myStorage = globalStorage[this._domain];
	var results = myStorage.getItem(key);
	if (results == null) {
		return null;
	}
	results = results.value;
	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.WhatWGProvider";
}});
dojo.storage.browser.FlashStorageProvider = function () {
};
dojo.inherits(dojo.storage.browser.FlashStorageProvider, dojo.storage);
dojo.lang.extend(dojo.storage.browser.FlashStorageProvider, {namespace:"default", initialized:false, _available:null, _statusHandler:null, initialize:function () {
	if (djConfig["disableFlashStorage"] == true) {
		return;
	}
	var loadedListener = function () {
		dojo.storage._flashLoaded();
	};
	dojo.flash.addLoadedListener(loadedListener);
	var swfloc6 = dojo.uri.moduleUri("dojo", "../Storage_version6.swf").toString();
	var swfloc8 = dojo.uri.moduleUri("dojo", "../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;
	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;
	}
	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 [];
	}
	return results.split(",");
}, clear:function () {
	dojo.flash.comm.clear(this.namespace);
}, remove:function (key) {
	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 () {
	dojo.flash.obj.setVisible(false);
	if (dojo.storage.onHideSettingsUI != null && !dojo.lang.isUndefined(dojo.storage.onHideSettingsUI)) {
		dojo.storage.onHideSettingsUI.call(null);
	}
}, getType:function () {
	return "dojo.storage.browser.FlashStorageProvider";
}, _flashLoaded:function () {
	this._initialized = true;
	dojo.storage.manager.loaded();
}, _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);
	}
}});
dojo.storage.manager.register("dojo.storage.browser.FileStorageProvider", new dojo.storage.browser.FileStorageProvider());
dojo.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());
dojo.storage.manager.initialize();

⌨️ 快捷键说明

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