HTML中string的不可见分隔符

我需要一种方法来识别HTML标记中的某些string。 我知道string是什么,但它可能是文档中其他string的子string。 要find它们,我输出一个特殊的分隔字符(目前使用\032 )。 在页面加载时,我们浏览HTML并loggingstring的位置,并删除分隔符。

不幸的是,大多数浏览器都会显示分隔符,直到find并删除它们。 如果可能,我想避免这种情况。 是否有一个字符或string将保存在HTML内容(所以评论不会工作),但不会对用户可见? 它也需要是一个不太可能出现在string旁边的东西,所以像  也不会工作。

编辑:对不起,我忘了提到string将属性,所以任何types的标签不会工作。

‌ – 零宽度非joiner(见http://htmlhelp.org/reference/html40/entities/special.html

在这个已经出现在你的文本中的情况下,把它加倍(例如: ‌‌mytext‌‌


编辑响应评论:在Firefox 3中工作。请注意,您必须search实体的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> 

您可以将它们插入到<span>元素中。 这只适用于页内文本(不是属性等)。

否则,你可以插入一个空格字符,你的程序没有输出为HTML的一部分,如制表符( \x09 ),垂直制表符( \x0b ), \x0b回车符( \x0d )在它旁边的新行,Windows文本编码 – 或者,只是一个空字节( \x00 )。

我想要插入的最好的东西,在浏览器中是不可见的,它将是一对带有一些特殊id的标签,比如<span id="delimiter" class="Delimiter"></span> 。 这不会显示在内容上,而这可以出现在文档中。 你不需要删除它们。

您可以使用从左到右(LTR)标记 。 这是用于某种XSStesting吗? 如果是这样,这可能是有趣的: 对PHP的支持

Interesting Posts