Internet Explorer 9 の HTML フレームセット (または iframe) に置かれた Flash ムービーの奇妙な動作に関する問題を調査しています。 index.html ( http://melnishyn.narod.ru/ppt2swf/index.html ) を開くとムービー最初のフレームを短時間表示してから、空の白いフレームにジャンプします。
index.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になります
frame.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 ファイル) から作成されているため、ソースにアクセスすることはできません (逆コンパイルする以外は)。
私は2つの可能な回避策を考えています.1つはラッパーswfを使用し、もう1つはjavascript setTimeoutを使用して、GotoFrameメソッドで必要なスライドにムービーを常に設定します。ただし、どちらの回避策も望ましくありません。
より良い解決策はありますか?