gpt4 book ai didi

javascript - 当通过 element.select() 选择文本时,document.getSelection().toString() 返回空字符串

转载 作者:行者123 更新时间:2023-12-03 05:13:30 26 4
gpt4 key购买 nike

我正在尝试实现以下两个功能:

  1. 用户可以通过单击按钮复制textarea中的内容。
  2. 通过监听 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() 始终返回空字符串。这是设计使然,还是我错过了什么?

提前致谢。

最佳答案

Working fiddle

尝试:

 try {
var range = document.createRange();
range.selectNodeContents(txt);
window.getSelection().addRange(range);
return document.execCommand("copy");
}

关于javascript - 当通过 element.select() 选择文本时,document.getSelection().toString() 返回空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41696877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com