6

在一个巨大的数字表中,我通过将所有半可见的减号替换为 ,使用户的体验“更丰富” –。看起来很棒,进步很大。我正忙于赞美自己的聪明才智,以至于忘了注意到地板上的血迹。

因为,来看看,当这家伙去选择、复制、然后粘贴(在其他地方)这种转换的减号时,你猜怎么着?它们不再是负号。

我是否可以可靠、直接且跨浏览器(包括 Mac 浏览器)使用 onCopy 事件将那些–已(或即将)复制的内容中的字符改回减号?

如果是这样,你有什么建议吗?

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

谢谢!

4

2 回答 2

1

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

$('#my_text_field').bind('paste',function()
{
    $(this).val($(this).val().replace('–','-'));
}
于 2011-07-08T00:37:37.383 回答
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/

于 2011-07-08T00:40:38.680 回答