HTML 文字列として指定された DOM オブジェクトがあり、jQuery メソッドを使用して AJAX によって HTML ページに挿入されますreplaceWith()
。HTML 文字列には、<div>
要素とそれに対して機能するインラインが含ま<script>
れており、jQuery コマンドは次のようになります。
$('#foo').replaceWith('<div>Some Content</div><script>someJavaScriptFunction();</script>');
この AJAX が実行されると、<div>
要素が正しくレンダリングされ、内部のスクリプトが機能します<script>
が、それに加えて、インラインのコンテンツが<script>
ページ上でそのままレンダリングされます。なぜこうなった?どうすればこれを回避できますか? Chrome 開発者ツールで対応する部分を見ると、インライン スクリプトが 1 回だけ表示されます (意図したとおりです)。