onCopy事件会帮助我修复脚下的弹孔吗?

时间:2011-07-08 00:27:32

标签: javascript oncopy

在一张巨大的数字表格中,我通过–替换所有半可见的减号,让用户的体验更“丰富”。它看起来很棒,很大的改进。我忙着欣赏自己的聪明才智,忘了注意地板上的鲜血。

因为,来找出,当这个家伙去选择,复制,然后粘贴(在其他地方)这样转换的减号,猜猜是什么?他们不再是减号了。

我可以可靠地,直接地和跨浏览器(包括Mac浏览器)使用onCopy事件来将那些–字符更改回已经(或将要复制)的事项中的减号吗? / p>

如果是这样,你有任何提示吗?

编辑:我使用的是原生JavaScript,不使用任何框架。

谢谢!

2 个答案:

答案 0 :(得分:1)

我不相信JavaScript可以操纵剪贴板内部的内容,因为这是一个操作系统功能。您可以做的我相信是在用户将文本粘贴到您选择的字段后操作文本。这是JQuery的一个例子:

$('#my_text_field').bind('paste',function()
{
    $(this).val($(this).val().replace('–','-'));
}

答案 1 :(得分:1)

如果使用javascript以编程方式插入,–字符将正确复制/粘贴(如果插入实际字符,而不是HTML实体)。

也许您可以用以下内容替换每个–

<span class="fancyDash"></span>

然后在加载时你可以运行类似的东西:

var longDash = '\u2013';
jQuery.each($(".fancyDash"), function() {
    this.innerHTML = longDash;
});

以下是一个工作示例:http://jsfiddle.net/m9fhS/

修改:

或者,如果不使用jQuery,您可以先修补document.getElementsByClassName,以便它对使用IE的任何人都能正常工作,然后执行:

var longDash = '\u2013';
var spans = document.getElementsByClassName("fancyDash");
for (var index = 0; index < spans.length; index++) {
    spans[index].innerHTML = longDash;
}

如下所示:http://jsfiddle.net/m9fhS/1/