美文网首页
jquery 一键复制功能,兼容苹果 2019-04-

jquery 一键复制功能,兼容苹果 2019-04-

作者: 小吕纸 | 来源:发表于2019-04-17 10:48 被阅读0次

jquery  一键复制功能,兼容苹果

有做过一个项目,做好之后交给客户,客户用的是苹果手机,不料给我反馈回来一键复制功能 不能使用。

这是我原来的代码

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>微信名片</title>

</head>

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

<body>

    微信: <input class="mytxt" id="xmid" value="13521423628" readonly="readonly" unselectable="on"></input>

    <span class="copyname">(点击复制)</span>

    </div>

    </footer>

    </div>

    <script>

        // 一键复制 只针对安卓 select()不兼容苹果

        $('.copyname').click(function () {

            var dd = $('.mytxt');

            dd[0].select();

            document.execCommand("Copy");

            alert("复制成功!")

        });

    </script>

</body>

</html>

对,这段代码可以实现一键复制的效果,但值在安卓手机上生效,因为select()在苹果上不生效。这也算是苹果的一个坑吧。

所以换了一种写法,兼容苹果的,以后都用这个了,有需要的朋友可以看下

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>微信名片</title>

</head>

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

<body>

    微信: <input class="mytxt" id="xmid" value="13521423628" readonly="readonly" unselectable="on"></input>

    <span onClick="copyNum()">(点击复制)</span>

    </div>

    </footer>

    </div>

    <script>

        // 思路:要想复制到剪贴板,必须先选中这段文字。

        function copyNum() {

            var NumClip = document.getElementById("xmid");

            var NValue = NumClip.value;

            var valueLength = NValue.length;

            selectText(NumClip, 0, valueLength);

            if (document.execCommand('copy', false, null)) {

                document.execCommand('copy', false, null) // 执行浏览器复制命令

                alert("复制成功!");

            } else {

                alert("不兼容");

            }

        }

        // input自带的select()方法在苹果端无法进行选择,所以需要自己去写一个类似的方法

        // 选择文本。createTextRange(setSelectionRange)是input方法

        function selectText(textbox, startIndex, stopIndex) {

            if (textbox.createTextRange) { //ie

                var range = textbox.createTextRange();

                range.collapse(true);

                range.moveStart('character', startIndex); //起始光标

                range.moveEnd('character', stopIndex - startIndex); //结束光标

                range.select(); //不兼容苹果

            } else { //firefox/chrome

                textbox.setSelectionRange(startIndex, stopIndex);

                textbox.focus();

            }

        }

    </script>

</body>

</html>

相关文章

网友评论

      本文标题:jquery 一键复制功能,兼容苹果 2019-04-

      本文链接:https://www.haomeiwen.com/subject/itegwqtx.html