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

📄 atlascompat_0.08.js

📁 地理信息系统方面的开发源码
💻 JS
📖 第 1 页 / 共 2 页
字号:
			oEvent._FixOffset = null;
			m_Capturing = null;		
			ev.stopPropagation();
			ev.preventDefault();
		}			
	}
	

	function StopEvent(ev)
	{
		ev.stopPropagation();
		ev.preventDefault();
	}

	function ValidateButton(ev)
	{
		if (ev.button!=0)	// Fix Firefox bug with right click button firing onclick event
			ev.stopPropagation();
	}

	w.document.addEventListener("click",ValidateButton,true)

	w.HTMLElement.prototype.setCapture = function(ev) 
	{
		m_Capturing = this;
		document.addEventListener("mousemove",CaptureMouse,true);
		document.addEventListener("mouseover",StopEvent,true);	
		document.addEventListener("mouseout",StopEvent,true);	
		document.addEventListener("mouseenter",StopEvent,true);	
		document.addEventListener("mouseleave",StopEvent,true);	
		document.addEventListener("mouseup",ReleaseMouse,true);	
	};
	
	w.HTMLElement.prototype.releaseCapture = function() 
	{
		m_Capturing = null;
		document.removeEventListener("mousemove",CaptureMouse,true);
		document.removeEventListener("mouseover",StopEvent,true);	
		document.removeEventListener("mouseout",StopEvent,true);	
		document.removeEventListener("mouseenter",StopEvent,true);	
		document.removeEventListener("mouseleave",StopEvent,true);	
		document.removeEventListener("mouseup",ReleaseMouse,true);	
	}; 
	
	w.HTMLElement.prototype.insertAdjacentElement = function (sWhere,oElement)
	{
		switch (sWhere.toLowerCase())
		{
			case "beforebegin":
				this.parentNode.insertBefore(oElement,this);
				break;
			case "beforeend":
				this.appendChild(oElement);
				break;
			case "afterbegin":
				this.insertBefore(oElement,this.firstChild);
				break;				
			case "afterend":
				if (this.nextSibling) 
					this.parentNode.insertBefore(oElement,this.nextSibling);
				else 
					this.parentNode.appendChild(oElement);
				break;
			default:
				throw "Invalid Argument"; // TODO - see if I can get the error number set to 201 (match IE)
				break;
		}
	}

	function parseFilter(v)
	{
		// Cheap parse (only look for key word) - allows opacity support
		v = v.replace(" ",""); 
		var matchString = "DXImageTransform.Microsoft.Alpha(opacity=";
		var opacityIndex = v.indexOf(matchString)
		if (opacityIndex >0)
		{
			var close = v.indexOf(")",opacityIndex);
			if (close==-1)
				close = v.indexOf(",",opacityIndex);
			return ("." + v.substring(opacityIndex+matchString.length,close));
		}
		else
			return "";
	}

	// IE CSS Properties
	cssProto.__proto__ = 
	{
		get pixelLeft() {return parseInt(this.left) || 0;},
		set pixelLeft(v) {this.left = v + "px";},
		get pixelHeight() {return parseInt(this.height) || 0;},
		set pixelHeight(v) {this.height = v + "px";},
		get pixelTop() {return parseInt(this.top) || 0;},
		set pixelTop(v) {this.top = v + "px";},
		get pixelWidth() {return parseInt(this.width) || 0;},
		set pixelWidth(v) {this.width = v + "px";},
		set filter(v) {this.opacity = parseFilter(v)},
		get cssText() {
			var s = "";
			for (var j=0;j<this.cssRules.length;j++)
				s += this.cssRules[j].cssText;
			return s;
		},
		__proto__ : cssProto.__proto__
	}

	elementProto.__proto__ = {
		get parentElement() {return GetNonTextNode(this.parentNode)},
		set onfilterchange(v) {this.filters.onfilterchange = v},
		get onfilterchange() {return this.filters.onfilterchange},
		get innerText() {
			try 
				{return this.textContent} 
			catch(ex) 
			{
				var str = "";
				for (var i=0;i<this.childNodes.length;i++)
				{
					if (this.childNodes[i].nodeType==3)
						str += this.childNodes[i].textContent;
				}
			return str;
			}
		},
		set innerText(v) {var n = document.createTextNode(v);this.innerHTML = "";this.appendChild(n);},
		get currentStyle() {return new CurrentStyle(this)},
		get text() {return this.textContent},
		__proto__ : elementProto.__proto__
	}


	function selectSingleNode(d,v,c)
	{
		v+="[1]";
		var nl = selectNodes(d,v,c);
		if (nl.length>0)
			return nl[0];
		else
			return null;
	}

	function selectNodes(d,v,c)
	{
		var oResult = d.evaluate(v, c, 
							d.createNSResolver(d.documentElement),
							XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
		var nodeList = new Array();
		for(i=0;i<oResult.snapshotLength;i++)
			nodeList.push(oResult.snapshotItem(i));
		return nodeList;
	}

	w.XMLDocument.prototype.selectNodes = function(v)
	{
		return selectNodes(this,v,this);
	};
	
	w.Element.prototype.selectNodes = function(v)
	{
		var scope = this.ownerDocument;
		if(scope.selectNodes)
			return selectNodes(scope,v, this);
		else
			return null;
	};
	
	


	w.XMLDocument.prototype.selectSingleNode = function(v)
	{
		return selectSingleNode(this,v,null);
	};
	
	w.Element.prototype.selectSingleNode = function(v)
	{
		var scope = this.ownerDocument;
		if (scope.selectSingleNode)
			return selectSingleNode(scope,v, this);
		else
			return null;	// Only supported on XML nodes
	};


	function QuickLoc (el) 
	{
		var c = {x : 0, y : 0};
		while (el) {
			c.x += el.offsetLeft;
			c.y += el.offsetTop;
			el = el.offsetParent;
		}
		return c;
	}
	
	// IE Event Object
	eventProto.__proto__ = {
		get srcElement() { var n = this._FixOffset; if (!n) {n = GetNonTextNode(this.target)};return n;},
		set cancelBubble(v) { if (v) this.stopPropagation()},
		get offsetX() {return window.pageXOffset + this.clientX - ((this._FixOffset) ? QuickLoc(this._FixOffset).x : QuickLoc(this.srcElement).x);},
		get offsetY() {return window.pageYOffset + this.clientY - ((this._FixOffset) ? QuickLoc(this._FixOffset).y : QuickLoc(this.srcElement).y);},
		get x() {return this.offsetX},
		get y() {return this.offsetY},
		set returnValue(v) {if (!v) {this.preventDefault()}; this.cancelDefault = v;return v},
		get returnValue() {return this.cancelDefault},
		get fromElement() {
			var n;
			if (this.type == "mouseover")
				n = this.relatedTarget;
			else if (this.type == "mouseout")
				n = this.target;
			return GetNonTextNode(n);
			},
		get toElement() {
			var n =null;
			var ex;
			try
			{
				if (this.type == "mouseout")
					n = this.relatedTarget;
				else if (this.type == "mouseover")
					n = this.target;
			}
			catch(ex){}
			return GetNonTextNode(n);
			},
		__proto__:eventProto.__proto__};

}

// TODO - Needs thorough testing (especially timing related tests)
Web.Browser._Private.MozillaModal = function(sURL,oArguments,sFeatures,fnCallback)
{
	if (!sFeatures) sFeatures = "";
	sFeatures = sFeatures.removeSpaces();
	var featureList = sFeatures.split(",");
	sFeatures = "";
	var bCenter = bNoCenter = false;
	var w=h=0;
	for (var i=0;i<featureList.length;i++)
	{
		var feature = featureList[i].split(":");
		var k = feature[0].toLowerCase();
		var v = feature[1];
		switch (k)
		{
			case "dialogheight": s+="height=" + v; w=v;break;
			case "dialogwidth": s+="width=" + v; h=v;break;
			case "dialogtop": s+="top=" + v; bNoCenter = true; break;
			case "dialogleft": s+="left=" + v; bNoCenter = true; break;
			case "resizable": s+="resizable=" + v; break;
			case "status": s+="status=" + v; break;
			case "center": bCenter = true; break;
		}
		if (k!="center") s+=",";
	}
	if (bCenter && (!bNoCenter) && Web.Conversion)
	{
		
		if (w!=0) w = Web.Conversion.CoerceInt(w); else w=300;
		if (h!=0) h = Web.Conversion.CoerceInt(h); else h=300;
		if (w!="" || h!="")
		{
			s+="screenX=" + ((screen.availHeight-h)/2) + ",";
			s+="screenY=" + ((screen.availWidth-w)/2);
		}
	}
	var mWin = window.open(sURL,"",s);
	Web.Browser._Private.MozillaCompat(mWin);
	mWin.dialogArguments = oArguments;

	resetModal = function(ev)
	{
		if (mWin && !mWin.closed)
		{
			ev.stopPropagation();
			mWin.focus()
		}
	}
	
	var rValue = "";
	grabReturn = function()
	{
		if (mWin && !mWin.closed)
		{
			rValue = mWin.returnValue;
			setTimeout(CheckClose,0); // Test timer
		}
	}
	
	CheckClose = function()
	{
		if (mWin.closed)
		{				
			if (fnCallback)
				fnCallback(rValue);
			window.removeEventListener("focus",resetModal,true);
		}
	}
	
	hookEvents = function()
	{
		mWin.onunload = grabReturn; //("onunload",grabReturn,true);
		window.addEventListener("focus",resetModal,true);
	}		
	setTimeout(hookEvents,0) // Need to test timing of this (e.g., slow connection)
}

if (Web.Browser.isMozilla())  // Can only be true if compat library is installed and mozilla
{
	Web.Browser.AttachMozillaCompatibility(window);
}

⌨️ 快捷键说明

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