Подтвердить что ты не робот

Невидимый разделитель для строк в HTML

Мне нужен способ идентифицировать определенные строки в разметке HTML. Я знаю, что такое строки, но возможно, что они могут быть подстроками других строк в документе. Чтобы найти их, я выдаю специальный символ разделителя (в настоящее время используется \032). При загрузке страницы мы просматриваем HTML и записываем местоположение строк и удаляем разделитель.

К сожалению, большинство браузеров показывают символ разделителя, пока мы не сможем найти и удалить их все. Я хотел бы избежать этого, если это возможно. Есть ли символ или строка, которая будет сохранена в содержимом HTML (так что комментарий не работает), но не будет видимым для пользователя? Это также должно быть что-то, что вряд ли появится рядом с строкой, поэтому что-то вроде   тоже не сработает.

EDIT: Извините, я забыл упомянуть, что строки будут в атрибутах, поэтому любой тип тега не будет работать.

4b9b3361

Ответ 1

‌ - незакрепленный нулевой шириной (см. http://htmlhelp.org/reference/html40/entities/special.html)

Во избежание того, что это уже появляется в вашем тексте, удвойте его (например: ‌‌mytext‌‌


Изменить в ответ на комментарий: работает в Firefox 3. Обратите внимание, что вам нужно искать значение Unicode для объекта.

<html>
<body>
    <div id="test">
        This is a &zwnj;test
    </div>

    <script type="application/javascript">
        var myDiv = document.getElementById("test");
        var content = myDiv.innerHTML;
        var pos = content.indexOf("\u200C");
        alert(pos);
    </script>
</body>
</html>

Ответ 2

Вы можете вставить их в элементы <span>. Это будет работать только для текста на странице (не атрибутов и т.п.).

В противном случае вы можете вставить символ пробела, который ваша программа еще не выводит как часть HTML, например символ табуляции (\x09), вертикальную вкладку (\x0b), голый возврат каретки (\x0d) — без новой строки рядом с ней, ala Windows text encoding — или, просто нулевой байт (\x00).

Ответ 3

Лучшее, что мне хотелось бы вставить, которое не видно в браузере, будет парой тегов с некоторым специальным идентификатором, например <span id="delimiter" class="Delimiter"></span>. Это не будет отображаться в содержимом, в то время как это может присутствовать в документе. Вам не нужно их удалять.