获取 document.execCommand 的剪贴板提示的用户响应
Get user response of clipboard prompt for document.execCommand
我需要使用 document.execCommand('copy');
在 JS 中复制剪贴板中的文本。
在现代浏览器中它运行良好,在 IE11 中有提示。
我怎样才能得到这个提示的用户响应??
我试过这段代码,但它returns总是true
....
HTML :
<textarea id="test">totototototot</textarea>
<button id='btn'>copy</button>
JS :
$('#btn').click(function(){
var area = document.getElementById('test');
area.setSelectionRange(0, $(area).text().length);
var succeed = false;
try{
succeed = document.execCommand('copy');
}catch(e){
succeed = false;
}
alert(succeed);
});
有人有想法吗? :)
谢谢。
一种方法是检查剪贴板是否包含预期的文本。如果您无权检查文本,那么您也无权设置文本。如果您有访问权限,您可以检查它是否包含您期望的内容。
$('#btn').click(function(){
var area = document.getElementById('test');
area.setSelectionRange(0, $(area).text().length);
document.execCommand('copy');
var expectedText = $(area).text();
var clipboard = window.clipboardData.getData('Text');
if(clipboard && clipboard == expectedText){
alert(':)');
} else {
alert(':(');
}
});
我需要使用 document.execCommand('copy');
在 JS 中复制剪贴板中的文本。
在现代浏览器中它运行良好,在 IE11 中有提示。
我怎样才能得到这个提示的用户响应??
我试过这段代码,但它returns总是true
....
HTML :
<textarea id="test">totototototot</textarea>
<button id='btn'>copy</button>
JS :
$('#btn').click(function(){
var area = document.getElementById('test');
area.setSelectionRange(0, $(area).text().length);
var succeed = false;
try{
succeed = document.execCommand('copy');
}catch(e){
succeed = false;
}
alert(succeed);
});
有人有想法吗? :)
谢谢。
一种方法是检查剪贴板是否包含预期的文本。如果您无权检查文本,那么您也无权设置文本。如果您有访问权限,您可以检查它是否包含您期望的内容。
$('#btn').click(function(){
var area = document.getElementById('test');
area.setSelectionRange(0, $(area).text().length);
document.execCommand('copy');
var expectedText = $(area).text();
var clipboard = window.clipboardData.getData('Text');
if(clipboard && clipboard == expectedText){
alert(':)');
} else {
alert(':(');
}
});