最近使用vue开发line(日韩的一款类似中国微信平台)的内嵌h5.里面的有一个需求就是将当前链接粘贴,然后发送到pc端,在电脑上进行打开。所有搜集找到了一下几种情况:
1.不带input输入框的原生js方法
这种情况适用于复制非输入框中的文本到剪切板
<h1 id="content">被复制的内容</h1> <button id="button">点击复制</button> <script> (function(){ button.addeventlistener('click', function(){ var copydom = document.querylector('#content'); prefer的名词 //创建选中范围 var range = document.createrange(); range.lectnode(copydom); //移除剪切板中内容 window.getlection().removeallranges(); //添加新的内容到剪切板 window.getlection().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.lect(); document.execcommand('copy'); alert('复制成功'); }) })() </script>
这种方法也可以进行延深,充当和方法1一样的用途。动态创建一个input输入框,将其内容置为想复制的内容,最后在将其移除或者隐藏即可。
3.js复制内容到剪贴板插件(clipboard.js)
clipboard.js cdn地址
引用方式:
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="asts/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框架提供的剪切板插件
import vue from 'vue' import vueclipboard from 'vue-clipboard2' vueclipboard.config.autotcontainer = true // add this line vue.u(vueclipboard)
sample1
<div id="app"></div> <template id="t"> <div class="container"> <input type="text" v-model="message"> <button type="button" v-clipboard:copy="message" v-clipboard:s周三英文uccess="oncopy" v-clipboard:error="onerror">copy!</button> </div> </template> <script> new vue({ el: '#app', template: '#t', data: function () { return { message: 'copy the text' } }, methods: { oncopy: function (e) { alert('you just copied: ' + e.text) }, onerror: function (e) { alert('failed to copy texts') } } }) </script>
sample2
<div id="app"></div> <template id="t"> <div class="container"> <input type="text" v-model="message"> <button type="button" @click="docopy">copy!</button> </div> </template> <script> new vue({ el: '#app', template: '#t', data: function () { return { message: 'copy the 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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。
本文发布于:2023-04-03 08:36:28,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1116097cd7650b56508b06a02325eb63.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Html5剪切板功能的实现代码.doc
本文 PDF 下载地址:Html5剪切板功能的实现代码.pdf
留言与评论(共有 0 条评论) |