swfobject.embedSWF不工作?

Kos*_*hur 3 javascript html5 swfobject

以下代码使用SWFObject将Flash动画嵌入到HTML文档中仅显示替代内容.为什么?

<!DOCTYPE html>
<html>
    <head>
        <title>Adding a Flash Movie</title>
        <script type="text/javascript"
                src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js">
        </script>
        <script type="text/javascript">
            swfobject.embedSWF("flash/bird.swf", "bird", "400", "300", "8.0.0");
        </script>
    </head>
    <body>
        <div id="bird">
            <p>An animation of a bird taking a shower</p>
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Chrome,IE和Firefox都只显示An animation of a bird taking a shower.

该代码是HTML&CSS书籍中的一个示例:设计和构建网站.

Chr*_*ris 13

SWFObject 2.2不再正常工作.已经在GitHub上报告了SWFObject中错误,但该库未被维护.

从Chrome 55开始的新"默认HTML"Flash策略不会初始化SWFObject用于检测Flash是否已安装的变量.具体而言,navigator.mimeTypes不再包含application/x-shockwave-flash,除非用户启用了Flash.其他浏览器也有与点击运行激活方案相关的类似问题,这些方案是作为Flash'es生命终结的一部分而引入的.

在这个时候,最好的行动方案可能是简单地使用<object>嵌入Flash.例如:

<object type="application/x-shockwave-flash" data="app.swf">
    <param name='movie' value="app.swf"/>
    <param name='bgcolor' value="#999999"/>
    <param name='FlashVars' value="var1=Hello&var2=Goodbye" />
    <param name='allowscriptaccess' value="sameDomain"/>
</object>
Run Code Online (Sandbox Code Playgroud)

注意(1).swf在两个地方指定(2)只movie需要param; 其他参数在这里显示为可能的例子.