私は SWFObject を使用しており、代替コンテンツ (Flash なし) には jQuery プラグインを使用したいと考えています。
明らかに、Flash が利用できない場合にのみ、jQuery とプラグイン スクリプトをロードしたいと考えています。したがって、Google の API ローダーは完璧に思えます。
今、setOnLoadCallback()
イベントで悩んでいます。本来のようにトリガーされるようですが、DOM の準備が整う前でしょうか? SO に関する別の質問を見つけたところ、DOM ロード時に文書化されていない 2 番目のパラメーターがあることが明らかになりましたが、
まだ jQuery にアクセスできません!
<script type="text/javascript" src="https://www.google.com/jsapi?key=INSERT-YOUR-KEY"></script>
<script type="text/javascript">
google.load("swfobject", "2.2");
</script>
<script type="text/javascript">
swfobject.embedSWF("slideshow.swf", "slideshow", "800", "530", "7","expressInstall.swf", null, null, null, flashNotLoaded);
function flashNotLoaded(e) {
if (!e.success) {
google.load("jquery", "1.4.2");
google.setOnLoadCallback(jQueryLoaded, true);
}
}
function jQueryLoaded() {
alert("jquery loaded");
$("body").css("background-color","ff00ff"); // does not work....
$(function() {
$("body").css("background-color","ff0000"); // neither does this...
});
}
</script>
編集: jQuery のようなライブラリの google.load は window.load でのみ使用できるようです
コールバックを使用して動的にロードできる Google 独自の API はごくわずかです
参照: Google ライブラリ API - google.load はイベントからロードされませんか?