| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395 | /* * zClip :: jQuery ZeroClipboard v1.1.1 * http://steamdev.com/zclip * * Copyright 2011, SteamDev * Released under the MIT license. * http://www.opensource.org/licenses/mit-license.php * * Date: Wed Jun 01, 2011 */(function(a) {	a.fn.zclip = function(c) {		if (typeof c == "object" && !c.length) {			var b = a.extend({				path : "ZeroClipboard.swf",				copy : null,				beforeCopy : null,				afterCopy : null,				clickAfter : true,				setHandCursor : true,				setCSSEffects : true			}, c);			return this					.each(function() {						var e = a(this);						if (e.is(":visible")								&& (typeof b.copy == "string" || a										.isFunction(b.copy))) {							ZeroClipboard.setMoviePath(b.path);							var d = new ZeroClipboard.Client();							if (a.isFunction(b.copy)) {								e.bind("zClip_copy", b.copy)							}							if (a.isFunction(b.beforeCopy)) {								e.bind("zClip_beforeCopy", b.beforeCopy)							}							if (a.isFunction(b.afterCopy)) {								e.bind("zClip_afterCopy", b.afterCopy)							}							d.setHandCursor(b.setHandCursor);							d.setCSSEffects(b.setCSSEffects);							d.addEventListener("mouseOver", function(f) {								e.trigger("mouseenter")							});							d.addEventListener("mouseOut", function(f) {								e.trigger("mouseleave")							});							d.addEventListener("mouseDown", function(f) {								e.trigger("mousedown");								if (!a.isFunction(b.copy)) {									d.setText(b.copy)								} else {									d.setText(e.triggerHandler("zClip_copy"))								}								if (a.isFunction(b.beforeCopy)) {									e.trigger("zClip_beforeCopy")								}							});							d.addEventListener("complete", function(f, g) {								if (a.isFunction(b.afterCopy)) {									e.trigger("zClip_afterCopy")								} else {									if (g.length > 500) {										g = g.substr(0, 500) + "...\n\n("												+ (g.length - 500)												+ " characters not shown)"									}									e.removeClass("hover");									//alert(g.length);									tipsUser('内容已经复制到剪切板:\n\n'+ g,'success');									//alert("Copied text to clipboard:\n\n " + g)								}								if (b.clickAfter) {									e.trigger("click")								}							});							d.glue(e[0], e.parent()[0]);							a(window).bind("load resize", function() {								d.reposition()							})						}					})		} else {			if (typeof c == "string") {				return this.each(function() {					var f = a(this);					c = c.toLowerCase();					var e = f.data("zclipId");					var d = a("#" + e + ".zclip");					if (c == "remove") {						d.remove();						f.removeClass("active hover")					} else {						if (c == "hide") {							d.hide();							f.removeClass("active hover")						} else {							if (c == "show") {								d.show()							}						}					}				})			}		}	}})(jQuery);var ZeroClipboard = {	version : "1.0.7",	clients : {},	moviePath : "ZeroClipboard.swf",	nextId : 1,	$ : function(a) {		if (typeof (a) == "string") {			a = document.getElementById(a)		}		if (!a.addClass) {			a.hide = function() {				this.style.display = "none"			};			a.show = function() {				this.style.display = ""			};			a.addClass = function(b) {				this.removeClass(b);				this.className += " " + b			};			a.removeClass = function(d) {				var e = this.className.split(/\s+/);				var b = -1;				for ( var c = 0; c < e.length; c++) {					if (e[c] == d) {						b = c;						c = e.length					}				}				if (b > -1) {					e.splice(b, 1);					this.className = e.join(" ")				}				return this			};			a.hasClass = function(b) {				return !!this.className.match(new RegExp("\\s*" + b + "\\s*"))			}		}		return a	},	setMoviePath : function(a) {		this.moviePath = a	},	dispatch : function(d, b, c) {		var a = this.clients[d];		if (a) {			a.receiveEvent(b, c)		}	},	register : function(b, a) {		this.clients[b] = a	},	getDOMObjectPosition : function(c, a) {		var b = {			left : 0,			top : 0,			width : c.width ? c.width : c.offsetWidth,			height : c.height ? c.height : c.offsetHeight		};		if (c && (c != a)) {			b.left += c.offsetLeft;			b.top += c.offsetTop		}		return b	},	Client : function(a) {		this.handlers = {};		this.id = ZeroClipboard.nextId++;		this.movieId = "ZeroClipboardMovie_" + this.id;		ZeroClipboard.register(this.id, this);		if (a) {			this.glue(a)		}	}};ZeroClipboard.Client.prototype = {	id : 0,	ready : false,	movie : null,	clipText : "",	handCursorEnabled : true,	cssEffects : true,	handlers : null,	glue : function(d, b, e) {		this.domElement = ZeroClipboard.$(d);		var f = 99;		if (this.domElement.style.zIndex) {			f = parseInt(this.domElement.style.zIndex, 10) + 1		}		if (typeof (b) == "string") {			b = ZeroClipboard.$(b)		} else {			if (typeof (b) == "undefined") {				b = document.getElementsByTagName("body")[0]			}		}		var c = ZeroClipboard.getDOMObjectPosition(this.domElement, b);		this.div = document.createElement("div");		this.div.className = "zclip";		this.div.id = "zclip-" + this.movieId;		$(this.domElement).data("zclipId", "zclip-" + this.movieId);		var a = this.div.style;		a.position = "absolute";		a.left = "" + c.left + "px";		a.top = "" + c.top + "px";		a.width = "" + c.width + "px";		a.height = "" + c.height + "px";		a.zIndex = f;		if (typeof (e) == "object") {			for (addedStyle in e) {				a[addedStyle] = e[addedStyle]			}		}		b.appendChild(this.div);		this.div.innerHTML = this.getHTML(c.width, c.height)	},	getHTML : function(d, a) {		var c = "";		var b = "id=" + this.id + "&width=" + d + "&height=" + a;		if (navigator.userAgent.match(/MSIE/)) {			var e = location.href.match(/^https/i) ? "https://" : "http://";			c += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="'					+ e					+ 'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="'					+ d					+ '" height="'					+ a					+ '" id="'					+ this.movieId					+ '" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="movie" value="'					+ ZeroClipboard.moviePath					+ '" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="best" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="'					+ b					+ '"/><param name="wmode" value="transparent"/></object>'		} else {			c += '<embed id="'					+ this.movieId					+ '" src="'					+ ZeroClipboard.moviePath					+ '" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="'					+ d					+ '" height="'					+ a					+ '" name="'					+ this.movieId					+ '" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="'					+ b + '" wmode="transparent" />'		}		return c	},	hide : function() {		if (this.div) {			this.div.style.left = "-2000px"		}	},	show : function() {		this.reposition()	},	destroy : function() {		if (this.domElement && this.div) {			this.hide();			this.div.innerHTML = "";			var a = document.getElementsByTagName("body")[0];			try {				a.removeChild(this.div)			} catch (b) {			}			this.domElement = null;			this.div = null		}	},	reposition : function(c) {		if (c) {			this.domElement = ZeroClipboard.$(c);			if (!this.domElement) {				this.hide()			}		}		if (this.domElement && this.div) {			var b = ZeroClipboard.getDOMObjectPosition(this.domElement);			var a = this.div.style;			a.left = "" + b.left + "px";			a.top = "" + b.top + "px"		}	},	setText : function(a) {		this.clipText = a;		if (this.ready) {			this.movie.setText(a)		}	},	addEventListener : function(a, b) {		a = a.toString().toLowerCase().replace(/^on/, "");		if (!this.handlers[a]) {			this.handlers[a] = []		}		this.handlers[a].push(b)	},	setHandCursor : function(a) {		this.handCursorEnabled = a;		if (this.ready) {			this.movie.setHandCursor(a)		}	},	setCSSEffects : function(a) {		this.cssEffects = !!a	},	receiveEvent : function(d, f) {		d = d.toString().toLowerCase().replace(/^on/, "");		switch (d) {		case "load":			this.movie = document.getElementById(this.movieId);			if (!this.movie) {				var c = this;				setTimeout(function() {					c.receiveEvent("load", null)				}, 1);				return			}			if (!this.ready && navigator.userAgent.match(/Firefox/)					&& navigator.userAgent.match(/Windows/)) {				var c = this;				setTimeout(function() {					c.receiveEvent("load", null)				}, 100);				this.ready = true;				return			}			this.ready = true;			try {				this.movie.setText(this.clipText)			} catch (h) {			}			try {				this.movie.setHandCursor(this.handCursorEnabled)			} catch (h) {			}			break;		case "mouseover":			if (this.domElement && this.cssEffects) {				this.domElement.addClass("hover");				if (this.recoverActive) {					this.domElement.addClass("active")				}			}			break;		case "mouseout":			if (this.domElement && this.cssEffects) {				this.recoverActive = false;				if (this.domElement.hasClass("active")) {					this.domElement.removeClass("active");					this.recoverActive = true				}				this.domElement.removeClass("hover")			}			break;		case "mousedown":			if (this.domElement && this.cssEffects) {				this.domElement.addClass("active")			}			break;		case "mouseup":			if (this.domElement && this.cssEffects) {				this.domElement.removeClass("active");				this.recoverActive = false			}			break		}		if (this.handlers[d]) {			for ( var b = 0, a = this.handlers[d].length; b < a; b++) {				var g = this.handlers[d][b];				if (typeof (g) == "function") {					g(this, f)				} else {					if ((typeof (g) == "object") && (g.length == 2)) {						g[0][g[1]](this, f)					} else {						if (typeof (g) == "string") {							window[g](this, f)						}					}				}			}		}	}};
 |