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

📄 hostenv_browser.js

📁 struts hibernet spring
💻 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*/if (typeof window != 'undefined') {// attempt to figure out the path to dojo if it isn't set in the config(function() {	// before we get any further with the config options, try to pick them out	// of the URL. Most of this code is from NW	if(djConfig.allowQueryConfig){		var baseUrl = document.location.toString(); // FIXME: use location.query instead?		var params = baseUrl.split("?", 2);		if(params.length > 1){			var paramStr = params[1];			var pairs = paramStr.split("&");			for(var x in pairs){				var sp = pairs[x].split("=");				// FIXME: is this eval dangerous?				if((sp[0].length > 9)&&(sp[0].substr(0, 9) == "djConfig.")){					var opt = sp[0].substr(9);					try{						djConfig[opt]=eval(sp[1]);					}catch(e){						djConfig[opt]=sp[1];					}				}			}		}	}	if(((djConfig["baseScriptUri"] == "")||(djConfig["baseRelativePath"] == "")) &&(document && document.getElementsByTagName)){		var scripts = document.getElementsByTagName("script");		var rePkg = /(__package__|dojo|bootstrap1)\.js([\?\.]|$)/i;		for(var i = 0; i < scripts.length; i++) {			var src = scripts[i].getAttribute("src");			if(!src) { continue; }			var m = src.match(rePkg);			if(m) {				var root = src.substring(0, m.index);				if(src.indexOf("bootstrap1") > -1) { root += "../"; }				if(!this["djConfig"]) { djConfig = {}; }				if(djConfig["baseScriptUri"] == "") { djConfig["baseScriptUri"] = root; }				if(djConfig["baseRelativePath"] == "") { djConfig["baseRelativePath"] = root; }				break;			}		}	}	// fill in the rendering support information in dojo.render.*	var dr = dojo.render;	var drh = dojo.render.html;	var drs = dojo.render.svg;	var dua = (drh.UA = navigator.userAgent);	var dav = (drh.AV = navigator.appVersion);	var t = true;	var f = false;	drh.capable = t;	drh.support.builtin = t;	dr.ver = parseFloat(drh.AV);	dr.os.mac = dav.indexOf("Macintosh") >= 0;	dr.os.win = dav.indexOf("Windows") >= 0;	// could also be Solaris or something, but it's the same browser	dr.os.linux = dav.indexOf("X11") >= 0;	drh.opera = dua.indexOf("Opera") >= 0;	drh.khtml = (dav.indexOf("Konqueror") >= 0)||(dav.indexOf("Safari") >= 0);	drh.safari = dav.indexOf("Safari") >= 0;	var geckoPos = dua.indexOf("Gecko");	drh.mozilla = drh.moz = (geckoPos >= 0)&&(!drh.khtml);	if (drh.mozilla) {		// gecko version is YYYYMMDD		drh.geckoVersion = dua.substring(geckoPos + 6, geckoPos + 14);	}	drh.ie = (document.all)&&(!drh.opera);	drh.ie50 = drh.ie && dav.indexOf("MSIE 5.0")>=0;	drh.ie55 = drh.ie && dav.indexOf("MSIE 5.5")>=0;	drh.ie60 = drh.ie && dav.indexOf("MSIE 6.0")>=0;	drh.ie70 = drh.ie && dav.indexOf("MSIE 7.0")>=0;	var cm = document["compatMode"];	drh.quirks = (cm == "BackCompat")||(cm == "QuirksMode")||drh.ie55||drh.ie50;	// TODO: is the HTML LANG attribute relevant?	dojo.locale = dojo.locale || (drh.ie ? navigator.userLanguage : navigator.language).toLowerCase();	dr.vml.capable=drh.ie;	drs.capable = f;	drs.support.plugin = f;	drs.support.builtin = f;	var tdoc = window["document"];	var tdi = tdoc["implementation"];	if((tdi)&&(tdi["hasFeature"])&&(tdi.hasFeature("org.w3c.dom.svg", "1.0"))){		drs.capable = t;		drs.support.builtin = t;		drs.support.plugin = f;	}	// webkits after 420 support SVG natively. The test string is "AppleWebKit/420+"	if(drh.safari){		var tmp = dua.split("AppleWebKit/")[1];		var ver = parseFloat(tmp.split(" ")[0]);		if(ver >= 420){			drs.capable = t;			drs.support.builtin = t;			drs.support.plugin = f;		}	}})();dojo.hostenv.startPackage("dojo.hostenv");dojo.render.name = dojo.hostenv.name_ = 'browser';dojo.hostenv.searchIds = [];// These are in order of decreasing likelihood; this will change in time.dojo.hostenv._XMLHTTP_PROGIDS = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];dojo.hostenv.getXmlhttpObject = function(){    var http = null;	var last_e = null;	try{ http = new XMLHttpRequest(); }catch(e){}    if(!http){		for(var i=0; i<3; ++i){			var progid = dojo.hostenv._XMLHTTP_PROGIDS[i];			try{				http = new ActiveXObject(progid);			}catch(e){				last_e = e;			}			if(http){				dojo.hostenv._XMLHTTP_PROGIDS = [progid];  // so faster next time				break;			}		}		/*if(http && !http.toString) {			http.toString = function() { "[object XMLHttpRequest]"; }		}*/	}	if(!http){		return dojo.raise("XMLHTTP not available", last_e);	}	return http;}/** * Read the contents of the specified uri and return those contents. * * @param uri A relative or absolute uri. If absolute, it still must be in the * same "domain" as we are. * * @param async_cb If not specified, load synchronously. If specified, load * asynchronously, and use async_cb as the progress handler which takes the * xmlhttp object as its argument. If async_cb, this function returns null. * * @param fail_ok Default false. If fail_ok and !async_cb and loading fails, * return null instead of throwing. */dojo.hostenv._blockAsync = false;dojo.hostenv.getText = function(uri, async_cb, fail_ok){	// need to block async callbacks from snatching this thread as the result	// of an async callback might call another sync XHR, this hangs khtml forever	// hostenv._blockAsync must also be checked in BrowserIO's watchInFlight()	// NOTE: must be declared before scope switches ie. this.getXmlhttpObject()	if(!async_cb){ this._blockAsync = true; }	var http = this.getXmlhttpObject();	function isDocumentOk(http){		var stat = http["status"];		// allow a 304 use cache, needed in konq (is this compliant with the http spec?)		return Boolean((!stat)||((200 <= stat)&&(300 > stat))||(stat==304));	}	if(async_cb){		var _this = this, timer = null, gbl = dojo.global();		var xhr = dojo.evalObjPath("dojo.io.XMLHTTPTransport");		http.onreadystatechange = function(){			if(timer){ gbl.clearTimeout(timer); timer = null; }			if(_this._blockAsync || (xhr && xhr._blockAsync)){				timer = gbl.setTimeout(function () { http.onreadystatechange.apply(this); }, 10);			}else{				if(4==http.readyState){					if(isDocumentOk(http)){						// dojo.debug("LOADED URI: "+uri);						async_cb(http.responseText);					}				}			}		}	}	http.open('GET', uri, async_cb ? true : false);	try{		http.send(null);		if(async_cb){			return null;		}		if(!isDocumentOk(http)){			var err = Error("Unable to load "+uri+" status:"+ http.status);			err.status = http.status;			err.responseText = http.responseText;			throw err;		}	}catch(e){		this._blockAsync = false;		if((fail_ok)&&(!async_cb)){			return null;		}else{			throw e;		}	}	this._blockAsync = false;	return http.responseText;}/* * It turns out that if we check *right now*, as this script file is being loaded, * then the last script element in the window DOM is ourselves. * That is because any subsequent script elements haven't shown up in the document * object yet. */ /*function dj_last_script_src() {    var scripts = window.document.getElementsByTagName('script');    if(scripts.length < 1){		dojo.raise("No script elements in window.document, so can't figure out my script src");	}    var script = scripts[scripts.length - 1];    var src = script.src;    if(!src){		dojo.raise("Last script element (out of " + scripts.length + ") has no src");	}    return src;}if(!dojo.hostenv["library_script_uri_"]){	dojo.hostenv.library_script_uri_ = dj_last_script_src();}*/dojo.hostenv.defaultDebugContainerId = 'dojoDebug';dojo.hostenv._println_buffer = [];dojo.hostenv._println_safe = false;dojo.hostenv.println = function (line){	if(!dojo.hostenv._println_safe){		dojo.hostenv._println_buffer.push(line);	}else{		try {			var console = document.getElementById(djConfig.debugContainerId ?				djConfig.debugContainerId : dojo.hostenv.defaultDebugContainerId);			if(!console) { console = dojo.body(); }

⌨️ 快捷键说明

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