在一张巨大的数字表格中,我通过–
替换所有半可见的减号,让用户的体验更“丰富”。它看起来很棒,很大的改进。我忙着欣赏自己的聪明才智,忘了注意地板上的鲜血。
因为,来找出,当这个家伙去选择,复制,然后粘贴(在其他地方)这样转换的减号,猜猜是什么?他们不再是减号了。
我可以可靠地,直接地和跨浏览器(包括Mac浏览器)使用onCopy事件来将那些–
字符更改回已经(或将要复制)的事项中的减号吗? / p>
如果是这样,你有任何提示吗?
编辑:我使用的是原生JavaScript,不使用任何框架。
谢谢!
答案 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;
}