JS嵌入就是各有各的嵌入方法了,有嵌得好的有嵌得不好的。有人用document.write直接写,这法子说实话不大好,感觉hack成分多了,有点为了验证而验证的意思,而且没有体现出什么JS的优势。我觉得一个好的JS嵌入脚本,在保证Flash应有功能的基础上,⒒?JS的优势应该要有版本检测,要能很好解决可访问性问题(也就是用户在无法浏览Flash内容或禁用JS的时候应该如何处理的问题),要易于重复使用。
我用SWFObject比较多,就挑它来说一些这种方法的优点:
IE中没有讨厌的虚框问题了。
提供了完善的版本检测功能,如果版本不够则显示其他东西,比如图片或文字。
易于使用,只要在页面头加载一个.js文件,然后HTML写一个容器,里面放普通的文本或图片(用于无法显示Flash时显示),最后用脚本来替换这个元素里面的内容为Flash。
可以通过验证——当然这个不是重点,只是顺带效果罢了。
现阶段用JS嵌入Flash是最完美的方法,虽然这法子这也是由于浏览器的种种问题而作出的妥协。
但它在保证Flash功能的前提下还利用JS提供了额外的好处,再者又已经有人写了很完善的嵌入脚本可以方面地下载使用(推荐SWFObject),我们还有什么理由不用它呢?
SWFObject那网页是英文的,这里写个简单的用法教程:
下载它的.js文件,在这里:http://blog.deconcept.com/swfobject/swfobject1-4.zip(如果链接失效可能是版本有更新,请用上面给出的地址去主页下载最新版本)
在你的HTML页面头部<head>区嵌入这个脚本文件:<scripttype=''text/javascript''src=''swfobject.js''></script>
在你的HTML中写一个用来放Flash的容器,比如<div>,并随便给一个id比如flashcontent。然后在里面放上你的替换内容。
<divid=''flashcontent''>
这里放替换内容,用来在Flash无法显示时显示。
</div>
使用脚本替换这个内容:
<scripttype=''text/javascript''>
varso=newSWFObject(''movie.swf'',''mymovie'',''200'',''100'',''7'',''#336699'');
//参数意思:地址,Flash的id(不是容器的id),宽,高,版本需求,背景颜色
//这是最基本的,如果你要高级的设置,就仔细翻翻说明吧。
so.write(''flashcontent'');
</script>