Мне нужен способ определить определенные строки в разметке HTML. Я знаю, каковы строки, но возможно, что они могли быть подстроками других строк в документе. Для нахождения их я произвел специальный символ-разделитель (в настоящее время использование \032
). На загрузке страницы мы проходим HTML и записываем местоположение строк и удаляем разделитель.
К сожалению, большинство браузеров показывает символ-разделитель, пока мы не можем найти и удалить их всех. Я хотел бы избежать этого, если это возможно. Существует ли символ, или представьте в виде строки, который будет сохранен в содержимом HTML (так работа привычки комментария), но привычка быть видимым пользователю? Это также должно быть что-то, что довольно вряд ли появится рядом со строкой, таким образом, что-то как
не работал бы также.
Править: Извините, я забыл упоминать, что строки будут в атрибутах, таким образом, любой вид работы привычки тега.
- несоединитель нулевой ширины (см. http://htmlhelp.org/reference/html40/entities/special.html)
Если вдруг это уже есть в вашем тексте, удвойте его (например: mytext
Правка в ответ на комментарий: работает в Firefox 3. Обратите внимание, что вам нужно искать значение сущности в Unicode.
<html>
<body>
<div id="test">
This is a ‌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>
Вы можете вставить их в элементы . Это будет работать только для текста на странице (не для атрибутов и т.п.).
В противном случае вы можете вставить символ пробела, который ваша программа еще не выводит как часть HTML, например, символ табуляции (\x09
), вертикальная табуляция (\x0b
), возврат каретки (\x0d
) - без новой строки рядом с ним, как в текстовой кодировке Windows - или просто нулевой байт (\x00
).
Лучшее, что я хотел бы вставить, что не видно в браузере, это пара тегов с каким-то специальным идентификатором, вроде . Это не будет отображаться в содержимом, в то время как это может присутствовать в документе. Вам не нужно их удалять.
Вы можете использовать знаки слева направо (LTR) . Это для какого-то XSS-тестирования? Если это так, это может быть интересно: Поддержка Taint для PHP