0

次のコードがあります

<p>
  <%= sanitize "<p>This is a test</p>" %>
</p>

サニタイズされた html が の間に表示されると予想していました<p></p>。しかし、それは生産します。

<p>
      </p>
<p>This is a test</p> 

囲み<p></p>をに変更する<div></div>と、サニタイズされた html が間<div></div>に表示されます。

html をサニタイズすると、サニタイズ<p></p>された html が囲みタグから削除され、囲みタグの後に配置されるのはなぜですか?

サニタイズされた html を に表示するにはどうすればよい<p></p>ですか?

4

3 に答える 3

1

段落タグのネストは合法ではありません。このタグは、フレージング コンテンツ タグ<p>のみを受け入れます。

これが、Chrome 開発ツールが変更された順序を表示する理由です。ブラウザは間違いを可能な限り修正し、内側を外側に移動<p>して隣に移動します。

于 2013-12-15T19:22:30.453 に答える
0

HTML仕様のものです。リストは段落タグにあるとは想定されていません。

詳細は こちら

于 2013-12-15T19:26:38.600 に答える
0

<p>サニタイズ メソッドによって削除されない理由は、<p>タグがデフォルトで許可されているタグのリストにあるためです。完全なリストは次のとおりです。

del, dd, h3, address, big, sub, tt, a, ul, h4, cite, dfn, h5, small, kbd, code,
b, ins, img, h6, sup, pre, strong, blockquote, acronym, dt, br, p, div, samp,
li, ol, var, em, h1, i, abbr, h2, span, hr

詳細: http://apidock.com/rails/ActionView/Helpers/SanitizeHelper/sanitize

于 2013-12-15T19:26:58.567 に答える