noa*_*oah 54 html non-printing-characters
我需要一种方法来识别HTML标记中的某些字符串.我知道字符串是什么,但它们可能是文档中其他字符串的子字符串.为了找到它们,我输出一个特殊的分隔符(当前正在使用\032).在页面加载时,我们浏览HTML并记录字符串的位置,并删除分隔符.
不幸的是,大多数浏览器都会显示分隔符,直到我们可以找到并删除所有分隔符.如果可能的话,我想避免这种情况.是否有一个字符或字符串将保留在HTML内容中(因此注释不起作用)但对用户不可见?它也需要是一个不太可能出现在字符串旁边的东西,所以类似的东西 也不起作用.
编辑:对不起,我忘了提到字符串将属于属性,所以任何类型的标签都不会工作.
Ano*_*non 140
‌- 零宽度非连接器(请参阅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>
Run Code Online (Sandbox Code Playgroud)
您可以将它们插入<span>元素中.这仅适用于页内文本(不是属性等).
否则,你可以插入一个空格字符,你的程序没有输出作为HTML的一部分,如制表符(\x09),垂直制表符(\x0b),裸回车(\x0d) - 旁边没有换行符,ala Windows文本编码 - 或者,只是一个空字节(\x00).