vue 내에서 복사기능을 사용해야함 !!
코드 복사를 위해서 두가지 방법이 있다는것을 발견
<input ref="copy" type="text" :value="text" />
<button @click="handleCopy">클립보드 복사하기</button>
document.execCommand()함수를 이용하면 복사가 가능하다
input의 경우 vue에서의 경우 dom에 접근하기 위해서는 ref값을 이용을 해야한다 !!
// input을 선택하고
copy.value.select()
// 복사를 수행
document.execCommand('copy')
document.execCommand()를 이용해서 복사를 실행했는데 어떤 이유인지는 모르겠으나 복사 실패…….
npm install --save vue-clipboard2
import Vue from 'vue'
import VueClipboard from 'vue-clipboard2'
VueClipboard.config.autoSetContainer = true;
Vue.use(VueClipboard)
<script src="vue.min.js"></script>
method: {
copy() {
this.$copyText('카피TEXT').then(()=> {
alert("복사 완료")
}
}
}
확실히 vue 라이브러리를 사용하는것이 좀더 간편하고 ! 깔끔하게 복사가 되는것을 확인했다 ! document.execCommand()는 method에서 사용했을때 execCommand 이렇게 처리가 되었다.
더이상 지원을 안하는건 아닌거같은데 왜 이렇게 나오는지 모르겠다.. 구글 검색을 더해보자
이기능은 더이상 권장이 되지 않는 기능이라고 한다 !!!!! 일부 브라우저는 여전히 이를 지원하지만 관련 웹 표준에서 이미 제거되었거나 삭제 과정에서 호환성 목적으로 유지되고 있다. 가능하면 기존 코드를 업데이트를 하라고 한다 !! 작동이 중지될 수 있다 !!!!
안녕하세요!
프로젝트 진행 중에 클립보드에 복사 기능을 추가하려고 검색하다 블로그에 방문하게 됐습니다!
혹시 npm을 설치 후에 vue.min.js 스크립트를 따로 추가하셨는데 왜 추가하셨는지 알 수 있을까요?
제가 배포를 하고 보니 vue.min.js 스크립트를 추가하면서 'Uncaught SyntaxErro: Unexpected token '<' (at vue.min.js:1:1)'이라는 오류가 콘솔 창에 나오게 되었습니다.
그래서 스크립트 추가 태그를 지웠더니 오류 없이 나오더라구요ㅎㅎ