Javascript jQuery将文本附加到所选内容上,但保持高亮显示,并避免在文本区域和输入框上添加文本
我已经在这里形成了这个代码片段Javascript jQuery将文本附加到所选内容上,但保持高亮显示,并避免在文本区域和输入框上添加文本,javascript,jquery,html,Javascript,Jquery,Html,我已经在这里形成了这个代码片段 $(文档).on('copy',函数(e){ var seltxt=window.getSelection(); var copyFooter='阅读更多信息:'+document.location.href+''; var copyHolder=$('',{html:seltxt+copyFooter,样式:{position:'absolute',left:'-9999px'}}); $('body')。追加(版权持有者); seltxt.selectAllC
$(文档).on('copy',函数(e){
var seltxt=window.getSelection();
var copyFooter='
阅读更多信息:'+document.location.href+'
';
var copyHolder=$('',{html:seltxt+copyFooter,样式:{position:'absolute',left:'-9999px'}});
$('body')。追加(版权持有者);
seltxt.selectAllChildren(版权持有者[0]);
setTimeout(函数(){copyHolder.remove();},0);
});
它所做的是在复制操作时将附加文本添加到选择中,但它缺少两个主要功能:
- 即使我们从文本区域或输入字段中进行选择,它也会复制,在我的情况下,这一点都没有用
- 它会在复制后删除突出显示的文本,这不是浏览器上的默认行为,因此在第一次复制时可能会让用户感到恼火
seltxt.select();
还尝试:
seltxt.focus().select();
两者都没有成功。有什么想法吗?这应该行得通:
$(document).on('copy', function(e) {
var ignore = "input, textarea"
var seltxt = window.getSelection();
if ($(e.target).is(ignore)) {
return;
}
$("<div />", {
html: seltxt + "<br /><br />Read more: " + document.location.href + "<br />",
appendTo: "body",
style: {
position: "absolute",
left: "-99999px"
}
});
});
$(文档).on('copy',函数(e){
var ignore=“输入,textarea”
var seltxt=window.getSelection();
如果($(e.target).is(忽略)){
回来
}
$("", {
html:seltxt+“
阅读更多:“+document.location.href+”
”,
附:“身体”,
风格:{
位置:“绝对”,
左:“-99999像素”
}
});
});
$(“:not(输入,文本区域)”)