我想使用JavaScript来清理从我的网站复制的文本。
我使用这样的代码:
body {
vertical-align: middle; ➊
}
➊表示稍后发表评论。我希望读者复制这个片段并使用它 - 所以我需要删除那个Unicode标记。如何访问正在复制的文本并对其进行更改?
当用户点击(mousedown)时,我考虑从代码段中删除标记,因此她可以选择文本,复制它然后我会恢复标记,但这似乎还有很长的路要走。
答案 0 :(得分:2)
只需将unicode标记放在span标记中,并在用户单击
时将display none放在其上body {
vertical-align: middle; <span class="marker">➊</span>
}
然后在jQuery中执行此操作
$('.code')
.mousedown(function() {
$(this).find('.marker').css('display','none');
})
.mouseleave(function() {
$(this).find('.marker').css('display','inline');
});
作为奖励,您可以将以下样式应用于.marker
元素:
.marker
{
position:absolute;
right:0;
}
答案 1 :(得分:1)
您可以将unicode标记转换为图像,因为复制纯文本时会忽略图像。
答案 2 :(得分:0)
只是在评论中设置标记?因此在复制后使用它不会造成任何伤害
答案 3 :(得分:0)
有一个oncopy处理程序,但我怀疑它是否受到广泛支持。还有一些选择事件处理程序,如onselectstart(对于不同的浏览器也是如此)和各种属性,使文本的一部分不可选,如-moz-user-select: none(再次,不是跨浏览器)。您最好使用绝对定位的标记或通过z-index使标记无法访问。