这是一个很常见的事情,我想必须有一个“好”的方式将Flash干净地嵌入到HTML5中?我只对支持以下浏览器感兴趣:FF3,FF4,IE7,IE8,IE9,Chrome和Safari。
我知道有一些像SWFObject这样的Javascript解决方案,但这看起来有些过分。是不是只有一种干净,快速和简单的方法使用HTML?
此外:使用<embed>
是否有任何不利之处?它之前已经被W3C折旧了,但我知道它已经回归到HTML5了。那么为什么不使用它而不是使用<object>
?
答案 0 :(得分:3)
尝试jQuery Tools?
基本上,你所要做的就是:
<div id="clock"></div>
<script>
flashembed("clock", "/media/swf/global/clock.swf");
</script>
一个工作的例子是:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js"></script>
<div id="clock"></div>
<script>
flashembed("clock", "http://jquerytools.org/media/swf/global/clock.swf");
</script>
它适用于jQuery 2.0.3,1.10.2,1.9.0。
答案 1 :(得分:0)
创建SWFObject是为了动态处理每个浏览器解释对象标记的不同方式。我不知道这种情况的任何真正的变化,即使使用ie9,仍然需要用户激活active-x对象。
我仍然更喜欢使用SWFObject来实现闪存变量的强大而直接的处理:
var flashvars = {
filePath: "somePath",
verbose: "true"
};
var params = {
quality: "high",
wmode: "opaque",
menu: "false",
base: "/flash/home_page/"
};
var attributes = {
id: "flashContent"
};
swfobject.embedSWF(
"../flash/home_page/home.swf",
"flashContent",
"570",
"325",
"10.0.0",
"../frameworks/swfobject/expressInstall.swf",
flashvars,
params,
attributes,
outputStatus
);
我同意,如果有一个“更多”的轻量级替代品会很“好”,但是方便可以弥补所需的额外负载,imo。
欢呼声