淘客網(wǎng)站(一):讓微信內(nèi)置瀏覽器兼容clipboard.js

在clipboard.js出現(xiàn)之前,如果要在前端用一個(gè)按鈕復(fù)制網(wǎng)頁(yè)的內(nèi)容復(fù)制到剪貼板,最好的辦法就是通過(guò)Flash,因?yàn)樗募嫒菪宰詈?。但是隨著Flash江河日下,這種辦法的也就逐漸的被淘汰掉了。

clipboard.js有著出色的兼容性,無(wú)論是PC端、移動(dòng)端都沒(méi)有任何兼容問(wèn)題(真的是這樣嗎,不,對(duì)微信內(nèi)置的瀏覽器可不這樣美好)。它們的主頁(yè)是這樣介紹這個(gè)產(chǎn)品的:“拷貝文本到剪貼板不應(yīng)該是一件復(fù)雜的事,不應(yīng)該需要許多步驟以及幾百KB的文件,另外,它不應(yīng)該依靠flash以及其他框架,這就是clipboard存在的原因?!?/p>

我最終使用的是1.71的最新版本,使用min.js版本只有11K。也就是說(shuō),這個(gè)工具非常高效。

好像使用微信內(nèi)置瀏覽器去兼容clipboard.js這種需求并不多。至少我在google里面搜相關(guān)的信息搜不到這個(gè)答案。不過(guò)倒是有人提出相關(guān)的問(wèn)題,但沒(méi)有任何答案。

我來(lái)說(shuō)說(shuō)為什么我需要這種需求(就是需要在微信端的內(nèi)置瀏覽器上進(jìn)行復(fù)制操作)。大家知道,最近通過(guò)微信群發(fā)優(yōu)惠券的淘客們?nèi)兆舆^(guò)得可不滋潤(rùn)了,微信通過(guò)檢測(cè)淘口令的方法,對(duì)發(fā)商品過(guò)多的用戶(hù)進(jìn)行封鎖。一時(shí)間,哀鴻遍野。

使用淘口令打開(kāi)手機(jī)淘寶直接到優(yōu)惠券的確是一個(gè)最方便的辦法。但由于微信需要支付大量的流量費(fèi)用,而最終的受益者是淘寶,微信當(dāng)然不愿意看到這種局面,所以進(jìn)行封鎖。所謂道高一尺魔高一丈,淘客們也紛紛采用了各種方法以逃避微信封鎖。

其中比較好的方法是采用第三方網(wǎng)站進(jìn)行淘口令復(fù)制。也就是說(shuō),在發(fā)布商品里面沒(méi)有淘口令,也沒(méi)有淘寶方的鏈接。通過(guò)第三方網(wǎng)站的鏈接或者識(shí)別圖片的二維碼打開(kāi)第三方網(wǎng)站,通過(guò)網(wǎng)頁(yè)的淘口令進(jìn)行復(fù)制。

很簡(jiǎn)單的淘客網(wǎng)站,我們需要一個(gè)后臺(tái),后臺(tái)將管理用戶(hù)和密碼,再通過(guò)用戶(hù)再去增編刪商品,商品數(shù)據(jù)庫(kù)字段:商品ID,商品名稱(chēng),商品淘口令即可。

我們?cè)赾lipboard.js的Demo里面看到了簡(jiǎn)單應(yīng)用代碼,如下,非常簡(jiǎn)單:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>target-div</title>
</head>
<body>
    <!-- 1. Define some markup -->
    <div>hello</div>
    <button class="btn" data-clipboard-action="copy" data-clipboard-target="div">Copy</button>

    <!-- 2. Include library -->
    <script src="../dist/clipboard.min.js"></script>

    <!-- 3. Instantiate clipboard -->
    <script>
    var clipboard = new Clipboard('.btn');

    clipboard.on('success', function(e) {
        console.log(e);
    });

    clipboard.on('error', function(e) {
        console.log(e);
    });
    </script>
</body>
</html>

從上面的代碼可以看出,通過(guò)button,class名為btn,復(fù)制內(nèi)容為div里面的內(nèi)容,這里最好使用id,可以非常精確的指定復(fù)制內(nèi)容。如我下面的代碼。

<!doctype html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>點(diǎn)擊復(fù)制,優(yōu)惠無(wú)限</title>
    <link href="/css/bootstrap.min.css" rel="stylesheet" />
    <link href="/css/css.css" rel="stylesheet" />
    <script src="/js/jquery-1.10.2.min.js"></script>

    <body>
        <div class="container body-content">
            <div class="jumbotron">![](/images/tb.png)
                <h2 id="copy">《LuPS0389cDX《</h2> 
                <p>舜安特加厚車(chē)用洗車(chē)毛巾吸水抹布</p>
                <p
                    class="lead"></p>
                    <p><button class="btnClipboard" data-clipboard-action="copy" data-clipboard-target="#copy">復(fù)制</button></p>
            </div>
            <script src="/js/bootstrap.min.js"></script>
            <script src="/js/clipboard.min.js"></script>
            <script>
                var clipboard = new Clipboard('.btnClipboard');
                clipboard.on('success', function (e) {
                    console.log(e);
                });
                clipboard.on('error', function (e) {
                    console.log(e);
                });
            </script>
    </body>

運(yùn)行之后,我在PC,IPAD,安卓手機(jī)移動(dòng)瀏覽器上測(cè)試均沒(méi)有問(wèn)題,唯獨(dú)在微信端不行,復(fù)制能指定到所在的ID區(qū)域,但是并不能被復(fù)制到剪貼板上面來(lái)。

GOOGEL了很久換了很多的關(guān)鍵詞,始終找不到相關(guān)的答案。最后只能在自身找問(wèn)題了。

微信內(nèi)置瀏覽器是不可能專(zhuān)門(mén)針對(duì)clipboard.js做限制的,更多的考量是安全性問(wèn)題,那么網(wǎng)頁(yè)內(nèi)容不能被復(fù)制的話,那我使用input type="text" 文本輸入框應(yīng)該可以吧。于是我修改了一下相關(guān)代碼,運(yùn)行測(cè)試通過(guò):

<div class="container body-content">
            <div class="jumbotron">![](/images/tb.png)
                <h2>舜安特加厚車(chē)用洗車(chē)毛巾吸水抹布</h2> <input id="copy" type="text" value="《LuPS0389cDX《" class="form-control" readonly>
                <p
                    class="lead"></p>
                    <p><button class="btnClipboard" data-clipboard-action="copy" data-clipboard-target="#copy">復(fù)制</button></p>
            </div>
            <script src="/js/bootstrap.min.js"></script>
            <script src="/js/clipboard.min.js"></script>
            <script>
                var clipboard = new Clipboard('.btnClipboard');
                clipboard.on('success', function (e) {
                    console.log(e);
                });
                clipboard.on('error', function (e) {
                    console.log(e);
                });
            </script>

運(yùn)行如下圖。

mark

在淘客網(wǎng)站的下一篇,我來(lái)制作一個(gè)帶有二維碼的商品圖片。基本思路是這樣的,通過(guò)復(fù)制商品的圖片(一般是在QQ群或者微信群),然后顯示在網(wǎng)頁(yè)的Canvas里面,再將相對(duì)應(yīng)的網(wǎng)址生成二維碼,也在Canvas顯示,最終自動(dòng)合成為一個(gè)圖片。那么就可以復(fù)制到群里面去,圖片就帶有二維碼了。而不用打開(kāi)圖像編輯軟件,直接在代碼里面生成。

下次再見(jiàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 小豆豆—一個(gè)小女孩,一年級(jí)就被要求退學(xué),她會(huì)在上課的時(shí)候反復(fù)打開(kāi)課桌,喊化裝廣告宣傳員來(lái)表演,還會(huì)跟燕子對(duì)話......
    桃桃游閱讀 260評(píng)論 0 0
  • 放過(guò)別人也是放過(guò)自己
    午夜思語(yǔ)閱讀 131評(píng)論 0 0
  • 適應(yīng)篇 簡(jiǎn)書(shū)建立有一陣子了,但是呢,遲遲沒(méi)有更新第一篇,嗯,沒(méi)辦法,就是一個(gè)完美主義者,實(shí)在是不知道怎么寫(xiě)才叫好...
    烈火如歌hsn閱讀 459評(píng)論 1 4
  • 文|峰語(yǔ) 做一個(gè)陽(yáng)光的傻子 在繁星里游蕩 做一個(gè)安詳?shù)纳底?睡在馬路上 做一個(gè)幸福的傻子 和瘋子沒(méi)什么兩樣???
    代峰語(yǔ)閱讀 161評(píng)論 0 0

友情鏈接更多精彩內(nèi)容