Поможет ли событие onCopy мне отремонтировать пулевое отверстие в ноге? - PullRequest
6 голосов
/ 08 июля 2011

В огромной таблице чисел я сделал пользовательский опыт "богаче", заменив все полупрозрачные знаки минус на –.Смотрится отлично, большое улучшение.Я был так занят, восхищаясь своим умом, что забыл заметить кровь на полу.

Потому что, приходите, чтобы узнать, когда парень собирается выбрать, скопировать, а затем вставить (в другом месте) такие преобразованные знаки минуса., Угадай, что?они больше не являются знаками минус.

Могу ли я использовать событие onCopy надежно, прямо и кросс-браузерно (включая браузеры Mac), чтобы изменить эти символы – обратно на знаки минус в том, что было(или вот-вот) будет скопировано?

Если да, есть ли у вас какие-либо намеки на это?

РЕДАКТИРОВАТЬ: Я использую нативный JavaScript, а не какой-либорамки.

Спасибо!

Ответы [ 2 ]

1 голос
/ 08 июля 2011

Символ – будет правильно копироваться / вставляться, если он вставлен программно с использованием 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/

1 голос
/ 08 июля 2011

Я не верю, что есть способ, которым JavaScript может манипулировать тем, что находится внутри буфера обмена, потому что это функция ОС.Я считаю, что вы могли бы манипулировать текстом после того, как пользователь вставил его в поле по вашему выбору.Вот пример с JQuery:

$('#my_text_field').bind('paste',function()
{
    $(this).val($(this).val().replace('&ndash;','-'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...