我正在调查 Internet Explorer 9 中放置在 HTML 框架集(或 iframe)中的 Flash 电影的奇怪行为问题。如果打开 index.html(http://melnishyn.narod.ru/ppt2swf/index.html)电影短时间显示其第一帧,然后跳转到空白帧。
索引.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Presentation</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
<iframe src='frame.html' width="400" height="300">
</body>
</html>
直接打开 frame.html ( http://melnishyn.narod.ru/ppt2swf/frame.html ) 时,电影正确显示,但是我注意到当我更改电影的帧时(通过其内置的导航按钮或鼠标单击),它以某种方式将哈希添加到 url(仅在 IE 中),使其变为http://melnishyn.narod.ru/ppt2swf/frame.html#Slide1
框架.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Frame</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<script src="swfobject.js" type="text/javascript"></script>
<script type="text/javascript">
swfobject.embedSWF("Holidays.swf", "FlashContainer", "400", "300", "10.2.0", "playerProductInstall.swf", {}, {width:'100%', height:'100%', allowScriptAccess: 'always'}, {});
swfobject.createCSS("#FlashContainer", "display:block;text-align:left;");
</script>
</head>
<body>
<div id="FlashContainer"></div>
</body>
</html>
在其他浏览器(Opera 12 和 Firefox 14)中一切正常。
这部电影是由转换器从演示文稿(MS Power Point 的 ppt 文件)制作的,所以我无法访问它的源代码(除了反编译它)。
我正在考虑两种可能的解决方法——一种是使用包装器 swf,第二种是使用 javascript setTimeout 通过 GotoFrame 方法不断地将电影设置为所需的幻灯片。然而,这两种解决方法都是不受欢迎的。
有没有更好的解决方案?