Html5剪切板功能的实现

互联网 18-6-30
本篇文章主要介绍了Html5剪切板功能的实现代码,内容挺不错的,现在分享给大家,也给大家做个参考。

最近使用Vue开发Line(日韩的一款类似中国微信平台)的内嵌H5.里面的有一个需求就是将当前链接粘贴,然后发送到pc端,在电脑上进行打开。所有搜集找到了一下几种情况:

这种情况适用于复制非输入框中的文本到剪切板

      <h1 id="content">被复制的内容</h1>      <button id="button">点击复制</button>       <script>         (function(){             button.addEventListener('click', function(){                 var copyDom = document.querySelector('#content');                 //创建选中范围                 var range = document.createRange();                 range.selectNode(copyDom);                 //移除剪切板中内容                 window.getSelection().removeAllRanges();                 //添加新的内容到剪切板                 window.getSelection().addRange(range);                 //复制                 var successful = document.execCommand('copy');                  try{                     var msg = successful ? "successful" : "failed";                     alert('Copy command was : ' + msg);                 } catch(err){                     alert('Oops , unable to copy!');                 }             })         })()     </script>

2.带输入框的原生js方法

用于复制input,textarea中的文本

     <input type="text" id="input" value="17373383"> <br>     <button type="button" id="button">复制输入框中内容</button>     <script>         (function(){             button.addEventListener('click', function(){                 input.select();                 document.execCommand('copy');                 alert('复制成功');             })         })()     </script>

这种方法也可以进行延深,充当和方法1一样的用途。动态创建一个input输入框,将其内容置为想复制的内容,最后在将其移除或者隐藏即可。

3.js复制内容到剪贴板插件(clipboard.js)

引用方式:NPM npm install --save clipboard
CDN <script src="https://cdn.bootcss.com/clipboard.js/2.0.1/clipboard.js"></script>

                 <!--默认是截取.btn中的 data-clipboard-text的属性值-->                 <!-- <button class="btn" data-clipboard-text="3">Copy</button> -->                                  <!--截取input输入框中的值-->                 <input id="foo" value="https://github.com/zenorocha/clipboard.js.git">                              <!-- Trigger -->                 <button class="btn" data-clipboard-target="#foo">                     <img src="assets/clippy.svg" alt="Copy to clipboard">                 </button>                              <script src="https://cdn.bootcss.com/clipboard.js/2.0.1/clipboard.js"></script>                              <script>                                                      var clipboard = new ClipboardJS('.btn');                                          clipboard.on('success', function (e) {                         console.log(e);                     });                     clipboard.on('error', function (e) {                         console.log(e);                     });                                      </script>

里面还有很多高级用法,可以前往官网逻辑更多细节 Clipboard官网

4. Vue框架提供的剪切板插件 vue-clipboard2

     import Vue from 'vue'     import VueClipboard from 'vue-clipboard2'           VueClipboard.config.autoSetContainer = true // add this line     Vue.use(VueClipboard)

Sample1

     <p id="app"></p>          <template id="t">       <p class="container">         <input type="text" v-model="message">         <button type="button"           v-clipboard:copy="message"           v-clipboard:success="onCopy"           v-clipboard:error="onError">Copy!</button>       </p>     </template>         <script>     new Vue({       el: '#app',       template: '#t',       data: function () {         return {           message: 'Copy These Text'         }       },       methods: {         onCopy: function (e) {           alert('You just copied: ' + e.text)         },         onError: function (e) {           alert('Failed to copy texts')         }       }     })     </script>

Sample2

       <p id="app"></p>            <template id="t">         <p class="container">         <input type="text" v-model="message">         <button type="button" @click="doCopy">Copy!</button>         </p>       </template>             <script>       new Vue({         el: '#app',         template: '#t',         data: function () {           return {             message: 'Copy These Text'           }         },         methods: {           doCopy: function () {             this.$copyText(this.message).then(function (e) {               alert('Copied')               console.log(e)             }, function (e) {               alert('Can not copy')               console.log(e)             })           }         }       })       </script>

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

如何通过HTML5触摸事件实现移动端简易进度条

Html5移动端获奖无缝滚动动画实现

html5 touch事件实现触屏页面上下滑动

以上就是Html5剪切板功能的实现的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 剪切板
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:使用PHP和HTML5 FormData实现无刷新文件上传

相关资讯