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

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

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

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

53
задан noah 11 May 2010 в 09:26
поделиться

4 ответа

- несоединитель нулевой ширины (см. 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>
139
ответ дан 7 November 2019 в 08:22
поделиться

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

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

5
ответ дан 7 November 2019 в 08:22
поделиться

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

3
ответ дан 7 November 2019 в 08:22
поделиться

Вы можете использовать знаки слева направо (LTR) . Это для какого-то XSS-тестирования? Если это так, это может быть интересно: Поддержка Taint для PHP

0
ответ дан 7 November 2019 в 08:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: