从复制的文本中删除文本

时间:2010-05-08 11:40:57

标签: javascript copy copy-paste

我想使用JavaScript来清理从我的网站复制的文本。

我使用这样的代码:

body {
    vertical-align: middle; ➊
}

➊表示稍后发表评论。我希望读者复制这个片段并使用它 - 所以我需要删除那个Unicode标记。如何访问正在复制的文本并对其进行更改?

当用户点击(mousedown)时,我考虑从代码段中删除标记,因此她可以选择文本,复制它然后我会恢复标记,但这似乎还有很长的路要走。

4 个答案:

答案 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使标记无法访问。