我想使用JavaScript来清理从我的网站复制的文本。从复制文本中删除文本
我用的片段是这样的:
body {
vertical-align: middle; ➊
}
凡➊表示稍后评论。我希望读者复制此代码段并使用它 - 所以我需要删除该Unicode标记。我如何访问正在复制的文本并对其进行更改?
我认为当用户点击(mousedown)时,会从代码片段中删除标记,因此她可以选择文本并复制它,然后恢复标记,但这似乎是一个很长的路要走。
我想使用JavaScript来清理从我的网站复制的文本。从复制文本中删除文本
我用的片段是这样的:
body {
vertical-align: middle; ➊
}
凡➊表示稍后评论。我希望读者复制此代码段并使用它 - 所以我需要删除该Unicode标记。我如何访问正在复制的文本并对其进行更改?
我认为当用户点击(mousedown)时,会从代码片段中删除标记,因此她可以选择文本并复制它,然后恢复标记,但这似乎是一个很长的路要走。
只要把span标签unicode的标志,并把显示器没有他们,当用户点击
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;
}
有一个oncopy处理程序,但我怀疑它是广泛支持。还有像onselectstart这样的选择事件处理程序(对于不同的浏览器也是不同的)以及使文本的一部分不可选的各种属性,例如-moz-user-select: none(又是非跨浏览器)。你可能更好地使用绝对定位的标记或通过z-index使标记不可访问。
用户选择:不适用于Mozilla和WebKit,是的,它不会选择标记。但他们无论如何都被复制。 :/ – riddle 2010-05-08 12:22:28
恕我直言,这接缝是最合理的方式! +1 – 2010-05-08 12:00:27
你测试成功了吗?我无法使它工作(我精通JavaScript,所以代码执行,但我仍然复制标记。) – riddle 2010-05-08 12:21:38
http://www.jsfiddle.net/92En5/绝对在铬中工作。也许不会在别人 – Eric 2010-05-08 12:24:35