mirror of
https://github.com/zenorocha/clipboard.js.git
synced 2023-08-10 21:12:48 +03:00
Adds support for any HTML element
This commit is contained in:
10
dist/clipboard.js
vendored
10
dist/clipboard.js
vendored
@ -29,13 +29,21 @@ var Clipboard = (function () {
|
|||||||
key: 'bind',
|
key: 'bind',
|
||||||
value: function bind(trigger) {
|
value: function bind(trigger) {
|
||||||
trigger.addEventListener('click', function (e) {
|
trigger.addEventListener('click', function (e) {
|
||||||
|
var value = e.currentTarget.getAttribute('value') || '';
|
||||||
var targetSelector = e.currentTarget.getAttribute('for');
|
var targetSelector = e.currentTarget.getAttribute('for');
|
||||||
var target = document.getElementById(targetSelector);
|
var target = document.getElementById(targetSelector);
|
||||||
|
|
||||||
target.select();
|
if (target.nodeName === 'INPUT' || target.nodeName === 'TEXTAREA') {
|
||||||
|
target.select();
|
||||||
|
} else {
|
||||||
|
var range = document.createRange();
|
||||||
|
range.selectNode(target);
|
||||||
|
window.getSelection().addRange(range);
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
document.execCommand('copy');
|
document.execCommand('copy');
|
||||||
|
window.getSelection().removeAllRanges();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
}
|
}
|
||||||
|
22
index.html
Normal file
22
index.html
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Clipboard.js</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p id="paragraph">Lorem ipsum dolor.</p>
|
||||||
|
<button class="btn" for="paragraph" type="button">Copy</button>
|
||||||
|
|
||||||
|
<form>
|
||||||
|
<input id="target" type="text" value="qwe">
|
||||||
|
<button class="btn" for="target" type="button">Copy</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<script src="dist/clipboard.js"></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
new Clipboard('.btn');
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -28,10 +28,18 @@ class Clipboard {
|
|||||||
var targetSelector = e.currentTarget.getAttribute('for');
|
var targetSelector = e.currentTarget.getAttribute('for');
|
||||||
var target = document.getElementById(targetSelector);
|
var target = document.getElementById(targetSelector);
|
||||||
|
|
||||||
target.select();
|
if (target.nodeName === 'INPUT' || target.nodeName === 'TEXTAREA') {
|
||||||
|
target.select();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var range = document.createRange();
|
||||||
|
range.selectNode(target);
|
||||||
|
window.getSelection().addRange(range);
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
document.execCommand('copy');
|
document.execCommand('copy');
|
||||||
|
window.getSelection().removeAllRanges();
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
|
Reference in New Issue
Block a user