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

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

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

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

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

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

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

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

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

我們在clipboard.js的Demo里面看到了簡單應(yīng)用代碼,如下,非常簡單:

<!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>

從上面的代碼可以看出,通過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)惠無限</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>舜安特加厚車用洗車毛巾吸水抹布</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)瀏覽器上測試均沒有問題,唯獨(dú)在微信端不行,復(fù)制能指定到所在的ID區(qū)域,但是并不能被復(fù)制到剪貼板上面來。

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

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

<div class="container body-content">
            <div class="jumbotron">![](/images/tb.png)
                <h2>舜安特加厚車用洗車毛巾吸水抹布</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)站的下一篇,我來制作一個(gè)帶有二維碼的商品圖片。基本思路是這樣的,通過復(fù)制商品的圖片(一般是在QQ群或者微信群),然后顯示在網(wǎng)頁的Canvas里面,再將相對應(yīng)的網(wǎng)址生成二維碼,也在Canvas顯示,最終自動(dòng)合成為一個(gè)圖片。那么就可以復(fù)制到群里面去,圖片就帶有二維碼了。而不用打開圖像編輯軟件,直接在代碼里面生成。

下次再見。

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

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

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

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