文档章节

clipboard.js 复制文本

猿神出窍
 猿神出窍
发布于 2017/09/05 17:16
字数 1487
阅读 114
收藏 0
/*!
 * clipboard.js v1.5.15
 * https://zenorocha.github.io/clipboard.js
 *
 * Licensed MIT © Zeno Rocha
 */
!function(e) {
    if ("object" == typeof exports && "undefined" != typeof module)
        module.exports = e();
    else if ("function" == typeof define && define.amd)
        define([], e);
    else {
        var t;
        t = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this,
        t.Clipboard = e()
    }
}(function() {
    var e, t, n;
    return function e(t, n, i) {
        function o(a, c) {
            if (!n[a]) {
                if (!t[a]) {
                    var l = "function" == typeof require && require;
                    if (!c && l)
                        return l(a, !0);
                    if (r)
                        return r(a, !0);
                    var s = new Error("Cannot find module '" + a + "'");
                    throw s.code = "MODULE_NOT_FOUND",
                    s
                }
                var u = n[a] = {
                    exports: {}
                };
                t[a][0].call(u.exports, function(e) {
                    var n = t[a][1][e];
                    return o(n ? n : e)
                }, u, u.exports, e, t, n, i)
            }
            return n[a].exports
        }
        for (var r = "function" == typeof require && require, a = 0; a < i.length; a++)
            o(i[a]);
        return o
    }({
        1: [function(e, t, n) {
            function i(e, t) {
                for (; e && e !== document; ) {
                    if (e.matches(t))
                        return e;
                    e = e.parentNode
                }
            }
            if (Element && !Element.prototype.matches) {
                var o = Element.prototype;
                o.matches = o.matchesSelector || o.mozMatchesSelector || o.msMatchesSelector || o.oMatchesSelector || o.webkitMatchesSelector
            }
            t.exports = i
        }
        , {}],
        2: [function(e, t, n) {
            function i(e, t, n, i, r) {
                var a = o.apply(this, arguments);
                return e.addEventListener(n, a, r),
                {
                    destroy: function() {
                        e.removeEventListener(n, a, r)
                    }
                }
            }
            function o(e, t, n, i) {
                return function(n) {
                    n.delegateTarget = r(n.target, t),
                    n.delegateTarget && i.call(e, n)
                }
            }
            var r = e("./closest");
            t.exports = i
        }
        , {
            "./closest": 1
        }],
        3: [function(e, t, n) {
            n.node = function(e) {
                return void 0 !== e && e instanceof HTMLElement && 1 === e.nodeType
            }
            ,
            n.nodeList = function(e) {
                var t = Object.prototype.toString.call(e);
                return void 0 !== e && ("[object NodeList]" === t || "[object HTMLCollection]" === t) && "length"in e && (0 === e.length || n.node(e[0]))
            }
            ,
            n.string = function(e) {
                return "string" == typeof e || e instanceof String
            }
            ,
            n.fn = function(e) {
                var t = Object.prototype.toString.call(e);
                return "[object Function]" === t
            }
        }
        , {}],
        4: [function(e, t, n) {
            function i(e, t, n) {
                if (!e && !t && !n)
                    throw new Error("Missing required arguments");
                if (!c.string(t))
                    throw new TypeError("Second argument must be a String");
                if (!c.fn(n))
                    throw new TypeError("Third argument must be a Function");
                if (c.node(e))
                    return o(e, t, n);
                if (c.nodeList(e))
                    return r(e, t, n);
                if (c.string(e))
                    return a(e, t, n);
                throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")
            }
            function o(e, t, n) {
                return e.addEventListener(t, n),
                {
                    destroy: function() {
                        e.removeEventListener(t, n)
                    }
                }
            }
            function r(e, t, n) {
                return Array.prototype.forEach.call(e, function(e) {
                    e.addEventListener(t, n)
                }),
                {
                    destroy: function() {
                        Array.prototype.forEach.call(e, function(e) {
                            e.removeEventListener(t, n)
                        })
                    }
                }
            }
            function a(e, t, n) {
                return l(document.body, e, t, n)
            }
            var c = e("./is")
              , l = e("delegate");
            t.exports = i
        }
        , {
            "./is": 3,
            delegate: 2
        }],
        5: [function(e, t, n) {
            function i(e) {
                var t;
                if ("SELECT" === e.nodeName)
                    e.focus(),
                    t = e.value;
                else if ("INPUT" === e.nodeName || "TEXTAREA" === e.nodeName)
                    e.focus(),
                    e.setSelectionRange(0, e.value.length),
                    t = e.value;
                else {
                    e.hasAttribute("contenteditable") && e.focus();
                    var n = window.getSelection()
                      , i = document.createRange();
                    i.selectNodeContents(e),
                    n.removeAllRanges(),
                    n.addRange(i),
                    t = n.toString()
                }
                return t
            }
            t.exports = i
        }
        , {}],
        6: [function(e, t, n) {
            function i() {}
            i.prototype = {
                on: function(e, t, n) {
                    var i = this.e || (this.e = {});
                    return (i[e] || (i[e] = [])).push({
                        fn: t,
                        ctx: n
                    }),
                    this
                },
                once: function(e, t, n) {
                    function i() {
                        o.off(e, i),
                        t.apply(n, arguments)
                    }
                    var o = this;
                    return i._ = t,
                    this.on(e, i, n)
                },
                emit: function(e) {
                    var t = [].slice.call(arguments, 1)
                      , n = ((this.e || (this.e = {}))[e] || []).slice()
                      , i = 0
                      , o = n.length;
                    for (i; i < o; i++)
                        n[i].fn.apply(n[i].ctx, t);
                    return this
                },
                off: function(e, t) {
                    var n = this.e || (this.e = {})
                      , i = n[e]
                      , o = [];
                    if (i && t)
                        for (var r = 0, a = i.length; r < a; r++)
                            i[r].fn !== t && i[r].fn._ !== t && o.push(i[r]);
                    return o.length ? n[e] = o : delete n[e],
                    this
                }
            },
            t.exports = i
        }
        , {}],
        7: [function(t, n, i) {
            !function(o, r) {
                if ("function" == typeof e && e.amd)
                    e(["module", "select"], r);
                else if ("undefined" != typeof i)
                    r(n, t("select"));
                else {
                    var a = {
                        exports: {}
                    };
                    r(a, o.select),
                    o.clipboardAction = a.exports
                }
            }(this, function(e, t) {
                "use strict";
                function n(e) {
                    return e && e.__esModule ? e : {
                        default: e
                    }
                }
                function i(e, t) {
                    if (!(e instanceof t))
                        throw new TypeError("Cannot call a class as a function")
                }
                var o = n(t)
                  , r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
                    return typeof e
                }
                : function(e) {
                    return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
                }
                  , a = function() {
                    function e(e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable || !1,
                            i.configurable = !0,
                            "value"in i && (i.writable = !0),
                            Object.defineProperty(e, i.key, i)
                        }
                    }
                    return function(t, n, i) {
                        return n && e(t.prototype, n),
                        i && e(t, i),
                        t
                    }
                }()
                  , c = function() {
                    function e(t) {
                        i(this, e),
                        this.resolveOptions(t),
                        this.initSelection()
                    }
                    return a(e, [{
                        key: "resolveOptions",
                        value: function e() {
                            var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
                            this.action = t.action,
                            this.emitter = t.emitter,
                            this.target = t.target,
                            this.text = t.text,
                            this.trigger = t.trigger,
                            this.selectedText = ""
                        }
                    }, {
                        key: "initSelection",
                        value: function e() {
                            this.text ? this.selectFake() : this.target && this.selectTarget()
                        }
                    }, {
                        key: "selectFake",
                        value: function e() {
                            var t = this
                              , n = "rtl" == document.documentElement.getAttribute("dir");
                            this.removeFake(),
                            this.fakeHandlerCallback = function() {
                                return t.removeFake()
                            }
                            ,
                            this.fakeHandler = document.body.addEventListener("click", this.fakeHandlerCallback) || !0,
                            this.fakeElem = document.createElement("textarea"),
                            this.fakeElem.style.fontSize = "12pt",
                            this.fakeElem.style.border = "0",
                            this.fakeElem.style.padding = "0",
                            this.fakeElem.style.margin = "0",
                            this.fakeElem.style.position = "absolute",
                            this.fakeElem.style[n ? "right" : "left"] = "-9999px";
                            var i = window.pageYOffset || document.documentElement.scrollTop;
                            this.fakeElem.addEventListener("focus", window.scrollTo(0, i)),
                            this.fakeElem.style.top = i + "px",
                            this.fakeElem.setAttribute("readonly", ""),
                            this.fakeElem.value = this.text,
                            document.body.appendChild(this.fakeElem),
                            this.selectedText = (0,
                            o.default)(this.fakeElem),
                            this.copyText()
                        }
                    }, {
                        key: "removeFake",
                        value: function e() {
                            this.fakeHandler && (document.body.removeEventListener("click", this.fakeHandlerCallback),
                            this.fakeHandler = null,
                            this.fakeHandlerCallback = null),
                            this.fakeElem && (document.body.removeChild(this.fakeElem),
                            this.fakeElem = null)
                        }
                    }, {
                        key: "selectTarget",
                        value: function e() {
                            this.selectedText = (0,
                            o.default)(this.target),
                            this.copyText()
                        }
                    }, {
                        key: "copyText",
                        value: function e() {
                            var t = void 0;
                            try {
                                t = document.execCommand(this.action)
                            } catch (e) {
                                t = !1
                            }
                            this.handleResult(t)
                        }
                    }, {
                        key: "handleResult",
                        value: function e(t) {
                            this.emitter.emit(t ? "success" : "error", {
                                action: this.action,
                                text: this.selectedText,
                                trigger: this.trigger,
                                clearSelection: this.clearSelection.bind(this)
                            })
                        }
                    }, {
                        key: "clearSelection",
                        value: function e() {
                            this.target && this.target.blur(),
                            window.getSelection().removeAllRanges()
                        }
                    }, {
                        key: "destroy",
                        value: function e() {
                            this.removeFake()
                        }
                    }, {
                        key: "action",
                        set: function e() {
                            var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "copy";
                            if (this._action = t,
                            "copy" !== this._action && "cut" !== this._action)
                                throw new Error('Invalid "action" value, use either "copy" or "cut"')
                        },
                        get: function e() {
                            return this._action
                        }
                    }, {
                        key: "target",
                        set: function e(t) {
                            if (void 0 !== t) {
                                if (!t || "object" !== ("undefined" == typeof t ? "undefined" : r(t)) || 1 !== t.nodeType)
                                    throw new Error('Invalid "target" value, use a valid Element');
                                if ("copy" === this.action && t.hasAttribute("disabled"))
                                    throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
                                if ("cut" === this.action && (t.hasAttribute("readonly") || t.hasAttribute("disabled")))
                                    throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
                                this._target = t
                            }
                        },
                        get: function e() {
                            return this._target
                        }
                    }]),
                    e
                }();
                e.exports = c
            })
        }
        , {
            select: 5
        }],
        8: [function(t, n, i) {
            !function(o, r) {
                if ("function" == typeof e && e.amd)
                    e(["module", "./clipboard-action", "tiny-emitter", "good-listener"], r);
                else if ("undefined" != typeof i)
                    r(n, t("./clipboard-action"), t("tiny-emitter"), t("good-listener"));
                else {
                    var a = {
                        exports: {}
                    };
                    r(a, o.clipboardAction, o.tinyEmitter, o.goodListener),
                    o.clipboard = a.exports
                }
            }(this, function(e, t, n, i) {
                "use strict";
                function o(e) {
                    return e && e.__esModule ? e : {
                        default: e
                    }
                }
                function r(e, t) {
                    if (!(e instanceof t))
                        throw new TypeError("Cannot call a class as a function")
                }
                function a(e, t) {
                    if (!e)
                        throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !t || "object" != typeof t && "function" != typeof t ? e : t
                }
                function c(e, t) {
                    if ("function" != typeof t && null !== t)
                        throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                    e.prototype = Object.create(t && t.prototype, {
                        constructor: {
                            value: e,
                            enumerable: !1,
                            writable: !0,
                            configurable: !0
                        }
                    }),
                    t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                }
                function l(e, t) {
                    var n = "data-clipboard-" + e;
                    if (t.hasAttribute(n))
                        return t.getAttribute(n)
                }
                var s = o(t)
                  , u = o(n)
                  , f = o(i)
                  , d = function() {
                    function e(e, t) {
                        for (var n = 0; n < t.length; n++) {
                            var i = t[n];
                            i.enumerable = i.enumerable || !1,
                            i.configurable = !0,
                            "value"in i && (i.writable = !0),
                            Object.defineProperty(e, i.key, i)
                        }
                    }
                    return function(t, n, i) {
                        return n && e(t.prototype, n),
                        i && e(t, i),
                        t
                    }
                }()
                  , h = function(e) {
                    function t(e, n) {
                        r(this, t);
                        var i = a(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this));
                        return i.resolveOptions(n),
                        i.listenClick(e),
                        i
                    }
                    return c(t, e),
                    d(t, [{
                        key: "resolveOptions",
                        value: function e() {
                            var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
                            this.action = "function" == typeof t.action ? t.action : this.defaultAction,
                            this.target = "function" == typeof t.target ? t.target : this.defaultTarget,
                            this.text = "function" == typeof t.text ? t.text : this.defaultText
                        }
                    }, {
                        key: "listenClick",
                        value: function e(t) {
                            var n = this;
                            this.listener = (0,
                            f.default)(t, "click", function(e) {
                                return n.onClick(e)
                            })
                        }
                    }, {
                        key: "onClick",
                        value: function e(t) {
                            var n = t.delegateTarget || t.currentTarget;
                            this.clipboardAction && (this.clipboardAction = null),
                            this.clipboardAction = new s.default({
                                action: this.action(n),
                                target: this.target(n),
                                text: this.text(n),
                                trigger: n,
                                emitter: this
                            })
                        }
                    }, {
                        key: "defaultAction",
                        value: function e(t) {
                            return l("action", t)
                        }
                    }, {
                        key: "defaultTarget",
                        value: function e(t) {
                            var n = l("target", t);
                            if (n)
                                return document.querySelector(n)
                        }
                    }, {
                        key: "defaultText",
                        value: function e(t) {
                            return l("text", t)
                        }
                    }, {
                        key: "destroy",
                        value: function e() {
                            this.listener.destroy(),
                            this.clipboardAction && (this.clipboardAction.destroy(),
                            this.clipboardAction = null)
                        }
                    }]),
                    t
                }(u.default);
                e.exports = h
            })
        }
        , {
            "./clipboard-action": 7,
            "good-listener": 4,
            "tiny-emitter": 6
        }]
    }, {}, [8])(8)
});

 

© 著作权归作者所有

共有 人打赏支持
上一篇: js复制实例
猿神出窍
粉丝 17
博文 181
码字总数 66654
作品 0
沙坪坝
项目经理
私信 提问
使用clipboard.js实现copy/复制/拷贝到剪贴板功能

clipboard.js 是一个不需要flash,将文本复制到剪贴板的插件(兼容性良好)。 github:https://github.com/zenorocha/clipboard.js/#clipboardjs 1 引入插件 首先需要您需要通过传递DOM选择器,...

JamesView
09/25
0
0
无需 Flash 使用 jQuery 复制文字到剪贴板

如果在网上找一个关于如何将一段特定的文本拷贝到剪贴板的解决方案,最可能的结果就是使用Flash的方案来做这个事,虽然使用Flash可以很好地解决这个问题,但是这不是一个明智的想法,因为这个...

oschina
2016/03/12
11.5K
13
复制到剪切板插件clipboard.js源码解析

clipboard.js 是一个小型的复制到剪切板插件,只有3kb,非flash 前言 公司项目有用到clipboard.js,由于好奇心顺手点开了源码看看其究竟是如何实现的,本以为是九曲十八弯错综复杂,其实还是...

sihai
11/13
0
0
javascript 实现跨浏览器的粘贴,复制,剪切功能(转)

这两天在做跨浏览器的粘贴、复制、剪切功能。 本以为是很简单的事,原来并不简单。 网上查了很多资料。都是跨浏览器把文本复制到剪切板的实现方案(zero clipboard.js)。没有跨浏览器粘贴的...

苏叶晚晚
2012/09/26
0
0
clipboard.js实现一键复制功能

问题 做项目的时候,需要用到一键点击实现复制文本的功能,所以就针对于复制这一块做了研究,那么究竟如何能实现这个功能呢? 解决方案 经过多番搜索和尝试,发现大多数复制技术的浏览器兼容...

捷搜索
10/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java框架学习日志-7(静态代理和JDK代理)

静态代理 我们平时去餐厅吃饭,不是直接告诉厨师做什么菜的,而是先告诉服务员点什么菜,然后由服务员传到给厨师,相当于服务员是厨师的代理,我们通过代理让厨师炒菜,这就是代理模式。代理...

白话
今天
20
0
Flink Window

1.Flink窗口 Window Assigner分配器。 窗口可以是时间驱动的(Time Window,例如:每30秒钟),也可以是数据驱动的(Count Window,例如:每一百个元素)。 一种经典的窗口分类可以分成: 翻...

满小茂
今天
15
0
my.ini

1

architect刘源源
今天
14
0
docker dns

There is a opensource application that solves this issue, it's called DNS Proxy Server It's a DNS server that solves containers hostnames, if could not found a hostname that mat......

kut
今天
15
0
寻找数学的广度——《这才是数学》读书笔记2700字

寻找数学的广度——《这才是数学》读书笔记2700字: 文|程哲。数学学习方式之广:国内外数学教育方面的专家,进行了很多种不同的数学学习方式尝试,如数学绘本、数学游戏、数学实验、数学步道...

原创小博客
今天
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部