我正在使用 SWFObject,而对于替代内容(无 Flash),我想使用 jQuery 插件。
显然,我只想在 Flash 不可用时加载 jQuery 和插件脚本。所以 Google 的 API Loader 看起来很完美。
现在我遇到了这个setOnLoadCallback()
事件的问题。它似乎应该被触发,但可能在 DOM 准备好之前?我在 SO 上发现了另一个问题,显示在 DOM 加载时有第二个未记录的参数。
但我仍然无法访问 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 Library API - google.load 不从事件加载?