うーん。回避する場合はインライン スクリプトを使用しないでください。また、直接 DOM の作成と挿入が可能な場合は、innerHTML を使用しないでください。CSS を使用して、positionin/spacin の側面を処理します。画像は既にインラインで表示されているため、画像を個別に div で囲むことは事態を複雑にするだけです。
あなたのメソッドが何をしているのかわからなくても、私は推測していますが、これはあなたが大まかにやるべきことです:
<head>
<script>
function createImage(t,params)
{
var img = document.createElement('img');
/* season img to taste (e.g. img.src = params.source? */
t.appendChild(img);
}
/* bind this method to onload event or better a ready event */
function exec()
{
var t = document.getElementByid('target');
createImage(t,xx);
createImage(t,yy);
createImage(t,zz);
}
</script>
<style>
/* I'm not advocating px here and these are just example values */
#target {width: 600px; text-align: center;}
#target img {border: 0px; margin: 0 10px; } /* the margin handles the spacing */
</style>
</head>
<body>
<div id="target"></div>
</body>
JS DOM メソッドのリファレンス
なぜinnerHTMLが悪いのですか? 確かに高速になる可能性はありますが、常にそうであるとは限りません。とにかく近いですが、速度は JS の問題ではありません。ただし、innerHTML:
- インジェクション攻撃を開く
- イベント ハンドラで既存の要素を破棄すると、メモリ リークが発生する可能性があります。
- 文字列ベースであるためエラーが発生しやすい
- 挿入したばかりのものへの参照を返さず、複製できません