mls*_*lst 7 javascript vue.js vue-component vuejs2 vuetify.js
我正在使用Vuetify并尝试在v-text-field单击按钮时将文本从组件复制到剪贴板。Sample code available on codepen:
<template>
<div id="app">
<v-app id="inspire">
<v-container>
<v-text-field v-model="text1"></v-text-field>
<v-btn @click="copyText">copy</v-btn>
</v-container>
</v-app>
</div>
</template>
<script>
new Vue({
el: '#app',
vuetify: new Vuetify(),
data() {
return {
text1: 'lorem ipsum 123'
}
},
methods: {
copyText (){
// copy to clipboard
}
}
})
</script>
Run Code Online (Sandbox Code Playgroud)
问题是copyText在Vue实例的方法中放什么代码?
Coo*_*ola 22
这个解决方案对我有用。它使用大多数现代浏览器都支持的新剪贴板 API writeText 方法(有关更多详细信息,请参阅Can I use)。写入剪贴板不需要特殊权限。
methods: {
copyText() {
navigator.clipboard.writeText(this.text1);
}
}
Run Code Online (Sandbox Code Playgroud)
Chr*_*llo 12
您可以通过为ref属性分配一个值,然后在方法请求input元素中,使用select函数选择其内容并使用以下方法复制该内容document.execCommand("copy");:
<template>
<div id="app">
<v-app id="inspire">
<v-container>
<v-text-field v-model="text1" ref="textToCopy"></v-text-field>
<v-btn @click="copyText">copy</v-btn>
</v-container>
</v-app>
</div>
</template>
<script>
new Vue({
el: '#app',
vuetify: new Vuetify(),
data() {
return {
text1: 'lorem ipsum 123'
}
},
methods: {
copyText () {
let textToCopy = this.$refs.textToCopy.$el.querySelector('input')
textToCopy.select()
document.execCommand("copy");
}
}
})
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12618 次 |
| 最近记录: |