LABjsでscriptタグとの読み込みとは併用してはいけなかった。

,

何回もハマったこと会ったけど、更新してませんでしたすみません!

大した時間ははまらなかったけど、納品前だったからかなり焦った。。

ある案件の納品一時間前に、flash埋め込みサイトにLABjsを使ってて、「flashの埋め込みはscriptタグでちょく書きして欲しい」と言われました。

つまり下記のように書いていました。



(function() {
	$LAB
	.script('jquery.js').wait()
	.script('script.js').wait()
	.script('UserAgent.js').wait()
	.script('swfobject.js').wait()
	.wait(function() {
		var UA = new UserAgent();
		
		var flashvars = { convid: '' };
		var params = { base: ".", bgcolor: "#f7f7f7", allowFullScreen: false, wmode: "opaque"; };

		// win safariだけ処理を変える
		if (UA.isWinSafari) {
			params.wmode = "";
		}

		var attributes = { id: "flashContent", name: "flashContent" };

		swfobject.embedSWF("preloader.swf", "flashContent", "100%", "100%", "10.3", "expressInstall.swf", flashvars, params, attributes);
	});
})();

それを下のように書き換えたのです。

<script src="/assets/scripts/LAB.js"></script>
<script>
	$LAB
	.script('jquery.js').wait()
	.script('script.js').wait()
	.script('UserAgent.js').wait();
</script>
<script src="swfobject.js"></script>
<script>
(function() {
	var UA = new UserAgent();
	
	var flashvars = { convid: '' };
	var params = { base: ".", bgcolor: "#f7f7f7", allowFullScreen: false, wmode: "opaque"; };

	// win safariだけ処理を変える
	if (UA.isWinSafari) {
		params.wmode = "";
	}

	var attributes = { id: "flashContent", name: "flashContent" };

	swfobject.embedSWF("preloader.swf", "flashContent", "100%", "100%", "10.3", "expressInstall.swf", flashvars, params, attributes);
})();
</script>

普通に考えればわかるのですが、
素で書いたscriptタグの中でjqueryとUserAgentクラスを使っています。
これではエラーが起きてしまいますね。。

納品直前で焦ってたせいで、これに気づくのが遅れてしまいました。