在我的一个网站上,我大量使用 以便在网络浏览器中提供更好的连字符。不幸的是,它们通过复制或剪切和粘贴而被损坏,所以当人们从我的网站复制时,文章中带有额外的连字符,这真的很烦人。我在这里夸大了一点,但你明白了。
我希望有一种方法来过滤副本上的选择 - 基本上是一个在 到达剪贴板之前将其删除的机会。 根据我所阅读/研究的内容,我怀疑这是不可能的,但我想我应该在这里询问集体智慧,以防我错过了一些东西。
一个美丽的伪代码示例:
element.oncopy = function (ev) {
ev.selection.replace(/­/g, '');
return true; // or ev, I suppose
}
最佳答案
查看这篇有关 oncopy
事件的文章。我认为这正是您所需要的:http://help.dottoro.com/ljwexqxl.php .
下页的示例 #2 解释了如何以跨浏览器友好的方式使用剪贴板(因为只有 IE 可以访问第一篇文章中使用的 clipboardData
对象): http://help.dottoro.com/ljxundda.php
该页面还提到,在某些情况下,安全限制可能会阻止跨浏览器方法发挥作用,这就是为什么某些网站使用 Flash 来操作剪贴板的原因。这是一篇讨论该方法的文章,以防它听起来像您想要的:http://www.jeffothy.com/weblog/clipboard-copy/
编辑
看看Hyphenator.js 。它是一种在客户端智能地对文本进行连字符的 JavaScript 方法。快速试用演示 ( which can be found here ),它似乎将连字符从复制的文本中删除。更改您的内容以使用它而不是
可能会很痛苦,但看起来它会实现您的所有目标。
关于javascript - 使用javascript过滤剪切/复制选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5477553/