如何自动将文本附加到使用JavaScript复制的文本
作者:互联网
参见英文答案 > How to add extra info to copied web text 8个
在JavaScript中,如何在网站上选择文本,复制它(通过Control C,命令C或编辑复制)并让JavaScript在剪贴板上附加一行或两行,这样当用户粘贴时,他们复制的内容显示为以及额外的线?
此外,这可能只在网站的某些< div>内进行吗?如果是这样,怎么样?
解决方法:
我开发了一个执行此操作的脚本(和here’s关于此的博客文章):
<script>
$("body").bind('copy', function (e) {
if (typeof window.getSelection == "undefined") return; //IE8 or earlier...
var body_element = document.getElementsByTagName('body')[0];
var selection = window.getSelection();
//if the selection is short let's not annoy our users
if (("" + selection).length < 30) return;
//create a div outside of the visible area
var newdiv = document.createElement('div');
newdiv.style.position = 'absolute';
newdiv.style.left = '-99999px';
body_element.appendChild(newdiv);
newdiv.appendChild(selection.getRangeAt(0).cloneContents());
//we need a <pre> tag workaround
//otherwise the text inside "pre" loses all the line breaks!
if (selection.getRangeAt(0).commonAncestorContainer.nodeName == "PRE") {
newdiv.innerHTML = "<pre>" + newdiv.innerHTML + "</pre>";
}
newdiv.innerHTML += "<br /><br />Read more at: <a href='"
+ document.location.href + "'>"
+ document.location.href + "</a> © MySite.com";
selection.selectAllChildren(newdiv);
window.setTimeout(function () { body_element.removeChild(newdiv); }, 200);
});
</script>
标签:html,javascript,copy,xhtml,copy-paste 来源: https://codeday.me/bug/20191004/1853753.html