【发布时间】:2017-06-01 12:01:21
【问题描述】:
我正在尝试实现以下两个功能:
- 用户可以通过单击按钮复制
textarea中的内容。 - 通过收听
copy事件,我可以知道用户复制了哪些内容(用户是使用按钮、Ctrl-C 还是上下文菜单进行复制)。
这是我的代码(你也可以在https://jsfiddle.net/hjtswedm/3/看到它):
<html>
<head>
</head>
<script src='https://code.jquery.com/jquery-2.2.4.min.js'></script>
<script>
$(window).bind("copy", function (e) {
alert(document.getSelection().toString());
});
var copyText = function () {
var txt = document.createElement("textarea");
txt.textContent = $('#data').val();
txt.style.position = "fixed";
document.body.appendChild(txt);
txt.select();
try {
return document.execCommand("copy");
} catch (ex) {
return false;
} finally {
document.body.removeChild(txt);
}
}
</script>
<body>
Lorem Ipsum
<textarea id="data">test copy</textarea>
<button onclick="copyText()">
Copy Text
</button>
</body>
</html>
此代码适用于 Chrome。但是,对于 Firefox、Internet Explorer 和 Edge,当我单击复制按钮时,document.getSelection().toString() 总是返回空字符串。这是设计使然,还是我错过了什么?
提前致谢。
【问题讨论】:
标签: javascript jquery