Редактор текста в блоге вставляет код: <span class="redactor-invisible-space">

Редактор текста в блоге постоянно вставляет этот код: <span class="redactor-invisible-space">

Что это?

Иногда вставлен по 4 раза в оду строчку текста

5 ответов

  • 1
    Rat Партнер-разработчик 9 февраля 2016 04:27 #

    Похоже на ошибку редактора.

    • +1
      Антон Антон 9 февраля 2016 04:45 #

      От куда она и как исправить?

      Вот html обычного текста в статье блога:

      <p><span class="redactor-invisible-space">При желании можно найти ещё несколько курсов по ювелирному делу и отзывы о них. Если у вас есть информация по курсам и студиям в Санкт-Петербурге - напишите о них в комментариях к посту.</span>

      </p>

      ???

      • +1
        Rat Rat Партнер-разработчик 9 февраля 2016 06:58 #

        Я бы порекомендовал такой алгоритм использования текстового редактора:

        1. Набросать примерную структуру текста в визуальном режиме.
        2. Переключиться в HTML-режим, убрать мусор, если есть, и больше в визуальный режим не переключаться, а править HTML-код вручную.

        Печальная правда такова, что визуальный редактор постоянно что-то портит и годится в основном только для первоначального наброска оформления. Либо можно продолжать им пользоваться и не обращать внимания на мусор, который он добавляет, если этот мусор никак вам не мешает.

  • 2
    Ilya Myasin 16 марта 2016 20:39 #

    Только что чинил для нашей цмски этот глюк. Лишний элемент появляется при вставке (Ctrl+V) для установки курсора в нужное место, дальше по задумке разработчиков редактора он должен вырезаться регуляркой при сохранении. Но вырезается не всегда - например, если нажать Ctrl+V несколько раз, эти служебные span'ы окажутся вложены друг в друга.

    Поскольку редактор первой версии, видимо, обновляться дальше не будет, можно использовать патч. Я сделал так:

    // находим вот это
    html = html.replace(/<span class="redactor-invisible-space">(.*?)<\/span>/gi, '$1');
    
    // и заменяем вот на это
    var invisible_space_rex = /<span class="redactor-invisible-space">(.*?)<\/span>/gi;
    while (invisible_space_rex.test(html)) {
        html = html.replace(invisible_space_rex, '$1');
    }

    Не супер-надежный способ, например если во вставленном куске кода есть какой-то другой span, он сожрет его закрывающую пару - но он бы ее и так сожрал +)

    Надеюсь кому-нибудь пригодится.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите