7

位置に依存する JS を使用して HTML-Substring を抽出する必要があります。特殊文字を HTML エンコードして保存します。

例えば:

HTML

<div id="test"><p>l&ouml;sen &amp; gr&uuml;&szlig;en</p></div>​

文章

lösen & grüßen

私の問題は JS 部分にあります。たとえば 、ブロック内のHTML 依存の開始位置3と終了位置を持つ fragment を抽出しようとするときです。JS は一部の特殊文字を内部で変換しているように見えるため、toからのカウントが " " ではなく " "として誤って解釈されます。のような他の特殊文字は、この影響を受けません。9<div>39lösenl&ouml;&amp;

だから私の質問は、JSがそのように振る舞う理由を誰かが知っているなら? &auml;またはのような&ouml;文字は変換されていますが、&amp;またはのような文字&nbsp;はプレーンです。この変換を回避する可能性はありますか?

これを実証するためにフィドルを設定しました: JSFiddle

助けてくれてありがとう!

編集:

少し分かりにくい説明をしてしまったかもしれません、申し訳ありません。私が欲しいのはHTMLです:

<p>l&ouml;sen &amp; gr&uuml;&szlig;en</p>.

HTML タグを除き、すべての特殊文字は変換しないでください。上記の HTML のように。

しかし、JS は&ouml;or&uuml;öorüに自動的に変換するので、避ける必要があります。

4

2 に答える 2

2

これは、(JavaScript ではなく) ブラウザーが、HTML でエスケープする必要のないエンティティをそれぞれの Unicode 文字に変換するためです (たとえば&amp;&lt;と をスキップします&gt;)。

そのため、を検査するとき.innerHTMLには、元のページ ソースに含まれていたものが正確に含まれていません。このプロセスを逆にすることもできますが、文字<->エンティティ ペアの完全なマップが必要になるため、実用的ではありません。

于 2012-11-23T17:02:29.500 に答える
0

私があなたを正しく理解している場合は、ターゲット要素の jQuery に innerHTML または .html('your html code') を使用してみてください

于 2012-11-23T16:51:28.910 に答える