/* * 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 += '' } else { c += '' } 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) } } } } } } };