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 ‌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的支持