objectを動的出力する際の問題点
2006.05.16
JavascriptでFlash用のタグをcreateElementを使って出力する際の問題点メモ。
Flashのポップアップに対応したLightboxJSみたいなものを書いている時にちょっと嵌まってしまったのですが、"IEでは" 処理の順番を注意しないと正常にFlashが読み込まれないようです。
1:object要素を作成
var oO = document.createElement('object');
2:object要素を親要素に追加(属性はまだ登録しない ID等はOK)
node.appendChild(oO);
3:param要素を作成
var oP = document.createElement('param');
4:param要素の属性を登録
oP.setAttribute('name', 'movie');
oP.setAttribute('value', '001.swf');
5:param要素をobject要素に追加する
oO.appendChild(oP);
6:object要素の属性を登録
oO.setAttribute('data', '001.swf');
oO.setAttribute('type', 'application/x-shockwave-flash');
注意する点としては、5の処理をする前に6の処理をしてしまうと読み込まれないという事です。
2は6の前ならいつでも可。
多分。
シュークリームを作る時、混ぜる順番を一個でも間違えると焼いた時にふくらまない、みたいなもんなんですかね(´・ω・`)