-4

ユーザー入力テキストを含む div があります。

html オブジェクトを挿入できるようにしたいのですが、この div のテキストの特定の位置にスパンと言います。

例えば:

<div>
    There is some text in this div and I would like to append an html object right here.
    There might be some other text here.
</div>

それを次のように変換します。

<div>
    There is some text in this div and I would like to append an html object <span class="safeHtml"></span> right here.
    There might be some other text here.
</div>

考慮すべき事項:

  1. ユーザー入力には、デザインや厄介なスクリプトを台無しにする可能性のあるhtmlタグが含まれている可能性があるため、div全体を安全なhtmlとしてレンダリングしたくありません。
  2. 挿入されたオブジェクトだけをhtmlとしてレンダリングしたい。残りはテキストとして。

ありがとう

PS: 質問を閉じた人や反対票を投じた人のために、黒板に絵を描く必要がありますか?

4

2 に答える 2

1

これを行うと、次のように置き換えることができますright here:

$('div').each(function(){
  $(this).html($(this).html().replace(/right here/, '<span>something</span>'));
});

挿入するだけの場合は、次のようにします。

$('div').each(function(){
  var html = $(this).html();
  var i = html.indexOf('right here');
  if (i>=0) $(this).html(html.slice(0, i)+'<span>something</span>'+html.slice(i));
});
于 2013-03-28T20:49:01.170 に答える
0

質問が理解できなくて困っています。しかし、これはあなたが探しているものだと思います。 http://jsfiddle.net/rexonms/wzBh3/

HTML

<div>
    Some text. <span id="newText"> </span> .Some more text.
</div>

Javascript

var htmlObject = "Text from HTML object"; 
$("#newText").append(htmlObject);
于 2013-03-28T22:29:21.277 に答える