誰かが私のサイトで何かを検索した後、結果のリストで検索された用語を強調表示します。
たとえば、「Lorem」を検索すると、結果の 1 つとして「Lorem ipsum dolor sit amet」というタイトルの記事が表示されます。この場合、「Lorem」が強調表示されます。通常のフォントであること。
私の機能は現在これです:
function highlightSearchedTerm(term) {
var regex = new RegExp('('+term+')', 'gi');
$('.markable').each(function(){
var content = $(this).html();
var replaced = content.replace(regex, "<span class=\"highlight\">$1</span>");
$(this).html(replaced);
});
}
問題は、記事のテキストにリンクや画像などの HTML コードが含まれている可能性があることです。そのため、誰かが「クリック」を検索すると、リンクの onclick 属性が置き換えられ、リンク内のスパンが取得されます。
お気に入り
<a href="http://www.example.com" onclick="window.open(this.href);return false;">link</a>
交換され、私は取得します
<a href="http://www.example.com" on<span class="highlight">click</span>="window.open(this.href);return false;">link</a>
これは悪いことです。
どうすればそれを回避できますか?