HTML: Как изменить многострочный скопированный текст в IE, прежде чем вставлять его в текстовое поле - PullRequest
0 голосов
/ 16 января 2012

Когда мы копируем текст, разделенный новой строкой, и пытаемся вставить его в текстовое поле в IE, текст усекается, начиная с первого символа новой строки.В Firefox и Chrome символ новой строки просто преобразуется в пробел.Мне необходимо реализовать единообразное поведение для всех этих браузеров.

Если я смогу получить скопированный текст, я могу преобразовать все \ r \ n в \ n , а затем все \ n до пробела, но я не могу придумать, как получить доступ к скопированному тексту до его усечения

1 Ответ

2 голосов
/ 29 марта 2012

Только для IE!Вы можете получить информацию из window.clipboardData, как показано здесь:

$('input:text').on('paste', function(ev) {
    var multiCellTarget = $(this);
    setTimeout(function() {
        var cells = window.clipboardData.getData('text').split(/\s+/);
        if (cells.length > 1) {
            // [... do stuff with cells]
        }
    }, 20);
});

Тайм-аут в 20 мс - это хитрость, позволяющая обойти проблему, заключающуюся в том, что данные буфера обмена не доступны в момент запуска jquery.событие вставки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...