使用 jQuery/JavaScript 复制到剪贴板文本框值
Copying to clipboard textbox value using jQuery/JavaScript
我有一个如下所示的文本框和按钮:
<div class="col-xs-11" style="padding:20px 0 ">
<input type="text" class="form-control txtKeywords" id="txtKeyw" style="margin-bottom:10px; height:45px;" maxlength="80" placeholder="Click on keywords to combine your title">
<button type="submit" class="btn btn-space btn-success btn-shade4 btn-lg copyToClipboard">
<i class="icon icon-left s7-mouse"></i> Copy to Clipboard
/button>
当用户点击按钮复制到剪贴板时,我想像这样将文本框的内容复制到剪贴板:
$(document).on("click", ".copyToClipboard", function () {
copyToClipboard("txtKeyw");
successMessage();
});
其中copyToClipboard
函数的定义是:
function copyToClipboard(element) {
var $temp = $("<input>");
$("body").append($temp);
$temp.val($(element).text()).select();
document.execCommand("copy");
$temp.remove();
}
但是当我这样做时,没有任何反应 -- 没有值从文本框复制到剪贴板...我在这里做错了什么?
更多信息:
- 这在 Chrome 59 64 位和 Firefox 54 32 位中都会发生。
successMessage()
被调用并显示在浏览器中。
- 在元素 ID 前添加
#
无法解决问题。
copyToClipboard()
获取一个元素作为参数。
txtKeyw
是 id,你必须在它前面加上 #
。
第 1 步: 像这样更改您的 copyToClipboard(element)
:
function copyToClipboard(text) {
var textArea = document.createElement( "textarea" );
textArea.value = text;
document.body.appendChild( textArea );
textArea.select();
try {
var successful = document.execCommand( 'copy' );
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copying text command was ' + msg);
} catch (err) {
console.log('Oops, unable to copy',err);
}
document.body.removeChild( textArea );
}
第 2 步: 为您的按钮指定一个 ID,然后像这样为其添加一个事件侦听器:
$( '#btnCopyToClipboard' ).click( function()
{
var clipboardText = "";
clipboardText = $( '#txtKeyw' ).val();
copyToClipboard( clipboardText );
alert( "Copied to Clipboard" );
});
试试这个..这是正确的方法。
第 1 步:
function copyToClipboard(text) {
var textArea = document.createElement( "textarea" );
textArea.value = text;
document.body.appendChild( textArea );
textArea.select();
try {
var successful = document.execCommand( 'copy' );
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copying text command was ' + msg);
} catch (err) {
console.log('Oops, unable to copy');
}
document.body.removeChild( textArea );
}
第 2 步:
$( '#btnCopyToClipboard' ).click( function()
{
var clipboardText = "";
clipboardText = $( '#txtKeyw' ).val();
copyToClipboard( clipboardText );
alert( "Copied to Clipboard" );
});
我有一个如下所示的文本框和按钮:
<div class="col-xs-11" style="padding:20px 0 ">
<input type="text" class="form-control txtKeywords" id="txtKeyw" style="margin-bottom:10px; height:45px;" maxlength="80" placeholder="Click on keywords to combine your title">
<button type="submit" class="btn btn-space btn-success btn-shade4 btn-lg copyToClipboard">
<i class="icon icon-left s7-mouse"></i> Copy to Clipboard
/button>
当用户点击按钮复制到剪贴板时,我想像这样将文本框的内容复制到剪贴板:
$(document).on("click", ".copyToClipboard", function () {
copyToClipboard("txtKeyw");
successMessage();
});
其中copyToClipboard
函数的定义是:
function copyToClipboard(element) {
var $temp = $("<input>");
$("body").append($temp);
$temp.val($(element).text()).select();
document.execCommand("copy");
$temp.remove();
}
但是当我这样做时,没有任何反应 -- 没有值从文本框复制到剪贴板...我在这里做错了什么?
更多信息:
- 这在 Chrome 59 64 位和 Firefox 54 32 位中都会发生。
successMessage()
被调用并显示在浏览器中。- 在元素 ID 前添加
#
无法解决问题。
copyToClipboard()
获取一个元素作为参数。
txtKeyw
是 id,你必须在它前面加上 #
。
第 1 步: 像这样更改您的 copyToClipboard(element)
:
function copyToClipboard(text) {
var textArea = document.createElement( "textarea" );
textArea.value = text;
document.body.appendChild( textArea );
textArea.select();
try {
var successful = document.execCommand( 'copy' );
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copying text command was ' + msg);
} catch (err) {
console.log('Oops, unable to copy',err);
}
document.body.removeChild( textArea );
}
第 2 步: 为您的按钮指定一个 ID,然后像这样为其添加一个事件侦听器:
$( '#btnCopyToClipboard' ).click( function()
{
var clipboardText = "";
clipboardText = $( '#txtKeyw' ).val();
copyToClipboard( clipboardText );
alert( "Copied to Clipboard" );
});
试试这个..这是正确的方法。
第 1 步:
function copyToClipboard(text) {
var textArea = document.createElement( "textarea" );
textArea.value = text;
document.body.appendChild( textArea );
textArea.select();
try {
var successful = document.execCommand( 'copy' );
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copying text command was ' + msg);
} catch (err) {
console.log('Oops, unable to copy');
}
document.body.removeChild( textArea );
}
第 2 步:
$( '#btnCopyToClipboard' ).click( function()
{
var clipboardText = "";
clipboardText = $( '#txtKeyw' ).val();
copyToClipboard( clipboardText );
alert( "Copied to Clipboard" );
});