63

HTMLマークアップで特定の文字列を識別する方法が必要です。文字列が何であるかは知っていますが、ドキュメント内の他の文字列のサブ文字列である可能性があります。それらを見つけるために、特別な区切り文字を出力します(現在はを使用してい\032ます)。ページの読み込み時に、HTMLを調べて文字列の場所を記録し、区切り文字を削除します。

残念ながら、ほとんどのブラウザは、すべてを見つけて削除できるようになるまで、区切り文字を表示します。できればそれは避けたいと思います。HTMLコンテンツに保持される(コメントは機能しない)が、ユーザーには表示されない文字または文字列はありますか?また、文字列の横に表示される可能性がかなり低いものである必要があるため、のようなものも 機能しません。

編集:申し訳ありませんが、文字列が属性に含まれることを忘れたため、どのような種類のタグも機能しません。

4

4 に答える 4

156

‌- ゼロ幅の非ジョイナー ( http://htmlhelp.org/reference/html40/entities/special.htmlを参照)

これがすでにテキストに表示されている可能性が低い場合は、2 倍にします (例:‌‌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>
于 2010-05-11T20:37:29.343 に答える
5

<span>それらを要素に挿入できます。これは、ページ内テキストに対してのみ機能します (属性などでは機能しません)。

それ以外の場合は、プログラムが HTML の一部としてまだ出力していない空白文字を挿入することができます。たとえば、タブ文字 ( \x09)、垂直タブ ( \x0b)、裸のキャリッジ リターン ( \x0d) などです。テキスト エンコーディング — または単なるヌル バイト ( \x00)。

于 2010-05-11T16:08:30.653 に答える
4

挿入したい最良のものは、ブラウザには表示されませんが、<span id="delimiter" class="Delimiter"></span>. これはコンテンツには表示されませんが、ドキュメントには表示されます。それらを削除する必要はありません。

于 2010-05-11T16:08:57.250 に答える
0

左から右 (LTR) マークを使用できます。これはある種の XSS テスト用ですか? もしそうなら、これは興味深いかもしれません:PHPの汚染サポート

于 2010-05-11T21:20:51.033 に答える