blog/2010-06-15


Total: 1461 / Today: 1 / Yesterday: 1

swfObjectを動的ロード

swfobjectはflashを読み込むスクリプトとしてデファクトスタンダードになっているが、複数読み込んだりしてしまうことがあるかもしれない。そこで、読み込む際に、定義済みかどうかを確認し、定義されてない場合は読み込むという形式をとるようにした方がいいと思う。

if(typeof(swfobject) == '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にコードが代入されているかどうかを確認し、ない場合はGoogle CDNからswfobjectを引っ張ってくるだけである。読み込まれている場合は動的ロードの必要がないため、個々の処理はスキップされる。便利だね。

このテクニックは、onloadなどの処理を行わないものならたいてい利用できる・・・ハズ。swfobjectの分だけソースが軽くなる。


Last Modified: 2010-06-15 16:21:00