Вход

Просмотр полной версии : Поведение свойства length в разных браузерах.


mihim
13.08.2011, 09:53
Здравствуйте.

На сайте организовал подсчёт символов в textarea через проверку свойства length после ввода каждого символа или после вставки куска текста.
Пример http://labourex.ru/boss/reg_boss.php

Всплыла вот такая проблема:
Перенос строки в Opera и IE считается за один символ, в FF и Chrome за два.

Я так подозреваю, что Opera и IE воспринимают перенос строки как \r\n, а FF и Chrome как \n.

Как крайний вариант я могу проверять последний введённый символ или сканить вставленный кусок на наличие переноса строк и корректировать счётчик.
Но сканить большой кусок текста - это как-то ресурсоёмко.

Может кто предложит более простые варианты получить одинаковое количество символов от всех браузеров?

monolithed
13.08.2011, 10:50
<textarea id="ta"></textarea>
<script>
document.getElementById('ta').onkeyup = function() {
var expr = /[\n\r]/g, value = this.value;
alert(value.length - (expr.test(value) ? value.match(expr).length : 0));
};
</script>