6

膨大な数の表の中で、半透明のマイナス記号をすべて。に置き換えることで、ユーザーエクスペリエンスを「より豊か」にしました–。それは素晴らしく、大きな改善に見えます。私は自分の賢さを賞賛するのに忙しかったので、床の血に気付くのを忘れました。

なぜなら、男がそのような変換されたマイナス記号を選択し、コピーしてから(他の場所に)貼り付けるとき、何を推測するのですか?彼らはもはやマイナス記号ではありません。

onCopyイベントを確実に、簡単に、そしてクロスブラウザー(Macブラウザーを含む)で使用して–、コピーされた(またはコピーされようとしている)問題のこれらの文字をマイナス記号に戻すことはできますか?

もしそうなら、それを行うためのヒントはありますか?

編集:私はネイティブJavaScriptを使用しており、フレームワークは使用していません。

ありがとう!

4

2 に答える 2

1

これはOSの機能であるため、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 に答える