zoukankan      html  css  js  c++  java
  • 微信号复制跟跳转——execCommand()

    之前由于公司的业务需求,需要点击实现微信号复制功能。今天说下js里面document.execCommand()方法实现复制功能。

    本次案例实现涉及以下几点:

    1.点击打开弹窗关闭弹窗的功能;display:block和display:none的切换

    2.H5提供的API-range对象;具体可去《HTML5编辑API之Range对象》查看.

    3.document.execCommand()方法使用。具体用法地址:https://developer.mozilla.org/zh-CN/docs/Web/API/Document/execCommand

    HTML部分

    <button onClick='_toolTipOpen()'>打开弹窗</button>
        <!-- 弹窗内容 -->
        <div id='_toolTipBox' onClick='_toolTipClose()'></div>
        <div id='_toolTip'>
            <div class='_tipText'>加[李四]微信好友</div>
            <div class='_tipCode '><span id="wechatCode">wechat</span></div>
            <div class='_tipCopy ' onclick="copywx()">点击复制</div>
            <a class='_tipOpenAPP' href='weixin://'>打开微信<span>(如无反应,请手动打开)</span></a>
            <div class='_toolTipClose' style='bottom: 10px;' onClick='_toolTipClose()'>取消</div>
        </div>

    css部分

        #_toolTipBox {
            display:none;
            width:100%;
            height:100%;
            background:rgba(0,0,0,0.4);
            position:fixed;
            top:0;
            left:0;
            z-index:90;
            transition:all 0.8s;
            }
         #_toolTip {
             display:none;
             position:fixed;
             transition:all 0.5s;
             line-height:60px;
             z-index:99;
             width:90%;
             text-align:center;
             margin:auto;
             left:0;
             right:0;
             bottom:10px;
             font-family:微软雅黑;
             border-radius:15px;
             color:#4d9dfe;font-size:16px;
             }     
         #_toolTip ._tipText {
             background:#FFF;
             width:100%;
             height:60px;
             line-height:60px;
             border-bottom:1px solid #D1D1D3;
             color:#4d9dfe;
             border-radius:18px 18px 0 0;
             }     
         #_toolTip ._tipCode {
             background:#FFF;
             border-bottom:1px solid #D1D1D3;
             } 
         #_toolTip ._tipCopy {
             background:#FFF;
             border-bottom:1px solid #D1D1D3;
             cursor:pointer;}     
         #_toolTip ._tipOpenAPP {
             background:#FFF;
             display:block;
             border-radius:0 0 18px 18px;
             text-decoration:none;
             color:#4d9dfe;} 
         #_toolTip ._tipOpenAPP span {
             font-size:14px;
             color:#888;}     
         #_toolTip ._toolTipClose {
             background:#FFF;
             border-radius:18px;
             margin-top:18px;
             cursor:pointer;}    

    js部分

            // 微信号复制
        function copywx(){
        //Range对象代表页面上的一段连续区域,通过Range对象,可以获取或修改页面上的任何区域,
        //创建一个空的Range对象
        const range = document.createRange();
        //Range对象的selectNode方法用于将Range对象的起点指定为某个节点的起点,将Range对象的终点指定为该节点的终点,
        //使Range对象所代表的区域中包含该节点。
        range.selectNode(document.getElementById('wechatCode'));
        //在html5中,每一个浏览器窗口及每一个窗口中都有一个selection对象,代表用户鼠标在页面中所选取的区域,
        //(注意:经过测试IE9以下的浏览器不支持Selection对象), 
        //可以通过如下语句创建selection对象;
        const selection = window.getSelection();
        if(selection.rangeCount > 0) 
        {   //removeAllRanges()从当前selection对象中移除所有的range对象
            selection.removeAllRanges();
            //seletion.addRange(range)一个区域(Range)对象将被增加到选区(Selection)当中。
            selection.addRange(range);
           // 拷贝当前选中内容到剪贴板。
            document.execCommand('copy');
            alert("微信号复制成功!");
        }else
        {
            alert('微信号复制失败,请手动复制!');
        }
    }
    /*打开弹窗*/
        function _toolTipOpen() {
            
            document.getElementById('_toolTipBox').style.display = 'block';
            document.getElementById('_toolTip').style.display = 'block';
        };
          /*关闭弹窗*/
        function _toolTipClose() {
          
            document.getElementById('_toolTipBox').style.display = 'none';
            document.getElementById('_toolTip').style.display = 'none';
        }
  • 相关阅读:
    [工作积累] shadow map问题汇总
    引擎设计跟踪(九.14.3.4) mile stone 2
    引擎设计跟踪(九.14.3.3) Deferred shading的一些小细节
    引擎设计跟踪(九.14.3.2) Deferred shading的后续实现和优化
    《口袋妖怪 太阳/月亮》正式公布 简体中文确认
    古墓丽影:崛起 PC版今日发售
    枪弹辩驳(弹丸论破)即将登陆PC
    引擎设计跟踪(九.14.3.1) deferred shading: Depthstencil as GBuffer depth
    引擎设计跟踪(九.14.3) deferred shading 准备
    引擎设计跟踪(九.14.2 final) Inverse Kinematics: CCD 在Blade中的实现
  • 原文地址:https://www.cnblogs.com/smile-xin/p/11619906.html
Copyright © 2011-2022 走看看