A Vuejs2 & Vuejs3 binding for clipboard.js
npm install vue-clipboard2A simple vuejs 2 binding for clipboard.js
npm install --save vue-clipboard2 or use dist/vue-clipboard.min.js without webpack
For vue-cli user:
``javascript
import Vue from 'vue'
import VueClipboard from 'vue-clipboard2'
Vue.use(VueClipboard)
`
For standalone usage:
`html`
Yes, you can do it by using our new method: this.$copyText. See
sample2,
where we replace the clipboard directives with a v-on directive.
Modern browsers have some limitations like that you can't use window.open without a user interaction.
So there's the same restriction on copying things! Test it before you use it. Make sure you are not
using this method inside any async method.
Before using this feature, read:
this issue and
this page first.
See clipboardjs document and this pull request, container option is available like this:
`js`
let container = this.$refs.container
this.$copyText("Text to copy", container)
Or you can let vue-clipboard2 set container to current element by doing this:
`js
import Vue from 'vue'
import VueClipboard from 'vue-clipboard2'
VueClipboard.config.autoSetContainer = true // add this line
Vue.use(VueClipboard)
`
`html
v-clipboard:copy="message"
v-clipboard:success="onCopy"
v-clipboard:error="onError">Copy!
`
`html
`
You can use your Vue instance `vm.$el` to get DOM elements via the usual traversal methods, e.g.:
`this.$el.children[1].children[2].textContent``
This will allow you to access the rendered content of your components, rather than the components themselves.
PRs welcome, and issues as well! If you want any feature that we don't have currently,
please fire an issue for a feature request.