Backup of blog/2010-06-15 (1) Back


Back to History list

#navi(../)
*swfObjectを動的ロード [#bf598440]
swfobjectはflashを読み込むスクリプトとしてデファクトスタンダードになっているが、複数読み込んだりしてしまうことがあるかもしれない。そこで、読み込む際に、定義済みかどうかを確認し、定義されてない場合は読み込むという形式をとるようにした方がいいと思う。
#code(JavaScript){{
if(typeof(swfobjects) == 'undefined'){
	var tag = document.createElement("script");
	tag.type = 'text/javascript';
	tag.async = 'async';
	tag.src = 'http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js';
	(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(tag);
}
}}

原理は非常に簡単。swfobjectが読み込まれたときにswfobjectにコードが代入されているかどうかを確認し、ない場合はGoogle CDNからswfobjectを引っ張ってくるだけである。読み込まれている場合は動的ロードの必要がないため、個々の処理はスキップされる。便利だね。