Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Обрезка текста (https://javascript.ru/forum/misc/12516-obrezka-teksta.html)

coolplayer 21.10.2010 12:18

Обрезка текста
 
Друзья, проблема следующая. Есть инфомер на сайте, выводящий лучшую новость. Количество символов в информере должно быть не более 250, иначе нужно обрезать статью и вставить ... Как это сделать На Javascript?

Kolyaj 21.10.2010 12:20

/**
     * Обрезает строку до длины length справа, слева или в центре, в зависимости от параметра mode. Вместо вырезанного
     * куска вставляет строку truncation.
     * @param {Number} length (Optional) Длина результирующей строки (по умолчанию 30).
     * @param {String} truncation (Optional) Строка, добавляемая вместо вырезанной части (по умолчанию '...').
     * @param {String} mode (Optional) Режим работы. left -- отрезает слева, right -- справа, center -- в центре.
     * (по умолчанию right).
     * @return {String} Обрезанная строка.
     */
    String.prototype.truncate = function(length, truncation, mode) {
        length = length || 30;
        if (this.length <= length) {
            return this.valueOf();
        }
        truncation = truncation || '...';
        switch (mode) {
            case 'left':
                return truncation + this.slice(truncation.length - length);
            case 'center':
                var l = Math.floor((length - truncation.length) / 2);
                return this.slice(0, l) + truncation + this.slice(-l);
            default:
                return this.slice(0, length - truncation.length) + truncation;
        }
    };

alert('1234567890'.truncate(5));

coolplayer 21.10.2010 12:24

Kolyaj, во всем разобрался кроме того, как сообщить скрипту, что мне надо редактировать именно текст информера, а не любой текст страницы?

Kolyaj 21.10.2010 12:26

Ну это уж зависит от скрипта вашего информера, нам это неведомо.

coolplayer 21.10.2010 12:32

Kolyaj,
текст как переменная $TEXT$, которая автоматически подставляется при обработке страницы.

Kolyaj 21.10.2010 12:37

Куда подставляется?

coolplayer 21.10.2010 12:39

Хостинг ucoz... в коде текст информера задается как переменная $TEXT$. Она и выводится. Ее и нужно укорачивать.

Kolyaj 21.10.2010 12:45

Телепатически тут сказать ничего нельзя. Ищите того, кто сможет разобраться в ваших кодах и окружении.

exec 21.10.2010 12:51

<div id="txt">
	$TEXT$
</div>
<script type="text/javascript">
	document.getElementById("txt").innerHTML = document.getElementById("txt").innerHTML.slice(0, 250) + "…";
</script>

coolplayer 21.10.2010 13:21

exec,
вот это реально помогло! спасибо!


Часовой пояс GMT +3, время: 04:43.