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

📄 hostenv_browser.js

📁 对java中如何使用Ajax技术
💻 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;			}		}else{		}	})();	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(){		// summary: does the work of portably generating a new XMLHTTPRequest object.		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; // XMLHTTPRequest instance	}	dojo.hostenv._blockAsync = false;	dojo.hostenv.getText = function(uri, async_cb, fail_ok){		// summary: Read the contents of the specified uri and return those contents.		// uri:		//		A relative or absolute uri. If absolute, it still must be in		//		the same "domain" as we are.		// 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.		// fail_ok:		//		Default false. If fail_ok and !async_cb and loading fails,		//		return null instead of throwing.		// 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; // String	}	dojo.hostenv.defaultDebugContainerId = 'dojoDebug';	dojo.hostenv._println_buffer = [];	dojo.hostenv._println_safe = false;	dojo.hostenv.println = function(/*String*/line){		// summary:		//		prints the provided line to whatever logging container is		//		available. If the page isn't loaded yet, the line may be added		//		to a buffer for printing later.		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(); }				var div = document.createElement("div");				div.appendChild(document.createTextNode(line));				console.appendChild(div);			} catch (e) {				try{					// safari needs the output wrapped in an element for some reason					document.write("<div>" + line + "</div>");				}catch(e2){					window.status = line;				}			}		}	}	dojo.addOnLoad(function(){		dojo.hostenv._println_safe = true;		while(dojo.hostenv._println_buffer.length > 0){			dojo.hostenv.println(dojo.hostenv._println_buffer.shift());		}	});

⌨️ 快捷键说明

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