javascript - 使用javascript过滤剪切/复制选择?

标签 javascript copy

在我的一个网站上,我大量使用 ­ 以便在网络浏览器中提供更好的连字符。不幸的是,它们通过复制或剪切和粘贴而被损坏,所以当人们从我的网站复制时,文章中带有额外的连字符,这真的很烦人。我在这里夸大了一点,但你明白了。

我希望有一种方法来过滤副本上的选择 - 基本上是一个在 ­ 到达剪贴板之前将其删除的机会。 根据我所阅读/研究的内容,我怀疑这是不可能的,但我想我应该在这里询问集体智慧,以防我错过了一些东西。

一个美丽的伪代码示例:

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/

相关文章:

PHP 在生成文档时在服务器上创建文档副本

linux - 使用 cp 时文件大小发生变化

javascript - 无法使用 jquery 访问 div 中保存的文本字符串

javascript - 在页面加载时本地化/翻译单词

javascript - 提升行为在 chrome 48 和 49 之间发生了变化?

带有 "this"关键字的 Java 复制构造函数

javascript - 为什么 JSON 克隆对象比 `for in` 和 `map` 更快?

javascript - 如何自动将文本附加到使用 JavaScript 复制的文本

javascript - 使用 php 抓取主要内容

javascript - 为什么用 'this' 填充的 JavaScript var 会随着 'this' 的变化而变化?