Vuetify의 v-text-field에서 클립보드로 텍스트를 복사하려면 어떻게 해야 합니까?
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>
문제는 어떤 코드를 넣느냐이다.copyText
Vue 인스턴스의 메서드?
이 솔루션은 나에게 효과가 있었다.새로운 클립보드 API 쓰기를 사용합니다.대부분의 최신 브라우저에서 지원되는 텍스트 방식입니다(자세한 내용은 사용 가능 참조).클립보드에 쓰는 데 특별한 권한이 필요하지 않습니다.
methods: {
copyText() {
navigator.clipboard.writeText(this.text1);
}
}
값을 할당하면 이 작업을 수행할 수 있습니다.ref
Atribute를 지정한 후 메서드에서는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>
나는 vue-clipboards로 해결했다.
1. - npm vue-childboard 설치
2.- 이것을 메인에 추가합니다.
import VueClipboards from 'vue-clipboards'
Vue.use(VueClipboards)
3.- 아래와 같이 vuetify btn을 만들고 v-clipboard를 추가합니다.
<v-btn v-clipboard="clipboardValue">add to clipboard</v-btn>
4.- 데이터 섹션(임의의 방법으로 원하는 위치에 값을 입력할 수 있습니다.)
data: () => ({
clipboardValue: 'something'
}),
5.- 코드를 실행합니다.그게 다야.
에 ID를 할당하다v-text-field
다음과 같은 요소:
<v-text-field v-model="text1" id="tocopy" ></v-text-field>
메서드에 다음 코드를 추가합니다.
copyText(){
let input=document.getElementById("tocopy");
input.select();
document.execCommand("copy");
}
이것을 확인하다
여기에는 어떤 종류의 서드파티 라이브러리도 필요하지 않습니다.클릭 메서드를 사용하여 동적 문자열을 전달하기만 하면 됩니다.
<template>
<v-btn @click="copyToClipBoard(errorMsg)">
<v-icon>mdi-content-copy</v-icon>
</v-btn>
</template>
메서드는 클립보드에 직접 복사합니다.
methods: {
copyToClipBoard(textToCopy) {
navigator.clipboard.writeText(textToCopy);
},
}
언급URL : https://stackoverflow.com/questions/57713402/how-can-i-copy-text-from-vuetifys-v-text-field-to-clipboard
'programing' 카테고리의 다른 글
클릭한 Vuetify v-tab 항목의 강조 표시 중지 또는 역방향 (0) | 2022.08.13 |
---|---|
"mvn clean package"와 "mvn clean install"은 어떻게 다릅니까? (0) | 2022.08.13 |
구조에서 기능 정의 (0) | 2022.08.11 |
구조에서는 하나의 어레이 필드를 사용하여 다른 어레이 필드에 액세스하는 것이 합법입니까? (0) | 2022.08.11 |
vuex: 비동기 함수에서 기본값 설정 (0) | 2022.08.11 |