プロが教えるわが家の防犯対策術!

お世話になります

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<title></title>
</head>
<body>
<div>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/c … style="width:100px;height:300px;" id="menu">
<param name="allowScriptAccess" value="sameDomain">
<param name="movie" value="menu.swf">
<param name="quality" value="high">
<param name="bgcolor" value="#FFFFFF">
<embed src="menu.swf" quality="high" style="background-color:#FFFFFF;width:100px;height:300px;" name="menu" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
</object>
</div>
</body>
</html>

フラッシュ画像を表示するには<object>を使いますが対応していないブラウザ用に<embed>を使用しますよね?
でもHTML4.01では<embed>は非推奨になっています
<embed>部分を削除すれば緑にすることは可能なのですがそれだとIE6,Opera9では表示できますが、Firefox2では表示されません(><)

対処法として<embed>の部分を<img src="noflash.gif">のようにするように書かれてあったのですがそれだとメニュー部分にしている為機能させられないと思うのですが(--;)

何か他に対処法はありますでしょうか?

別の対処法として考えているのは
IE限定で使用するのに
<!--[if IE]>
<![endif]-->
というのを使いますがこれのFirefox[Mozilla]版ってありますか?

A 回答 (3件)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "

http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Q3143370 TestCase1</title>
</head>
<body>
<h1>Object要素の記述とMinefieldの動作比較</h1>
<p>かなり重いサンプルなので分割して実験してみたほうがいいかも?</p>
<p>実験は全てローカルで行った。当然サーバからContent-Typeヘッダが流れないが,結果が変化するかは確認していない。</p>
<p>swfファイルのファイル名は変更しています。Opera 9.5 alpha Build 9562では全て表示された。</p>
<p>javascriptで生成したobject要素のtype属性にMIME typeを指定しても,サーバのヘッダの情報が優先される,というバグが
Firefoxにはある。(実験に用いたMinefieldでは修正済み)</p>
<h2>元データからembed要素を取り除いたもの(原型・表示されない)</h2>
<p>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/c … style="width:100px;height:300px;" id="menu0">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="Q3413770-1.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#FFFFFF" />
表示されない
</object>
</p>
<h2>元データからcodebase属性とclassid属性を取り除いた(表示されない・IE7でも表示されない)</h2>
<p>
<object style="width:100px;height:300px;" id="menu1">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="Q3413770-1.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#FFFFFF" />
表示されない
</object>
</p>


<h2>data属性とtype属性を付け加え,codebase属性とclassid属性を取り除いた(表示される)</h2>
<p>
<object data="Q3413770-1.swf" type="application/x-shockwave-flash" style="width:100px;height:300px;" id="menu2">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="Q3413770-1.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#FFFFFF" />
表示されない
</object>
</p>

<h2>data属性とtype属性を付け加え,codebase属性だけを取り除いた(表示されない)</h2>
<p>
<object data="Q3413770-1.swf" type="application/x-shockwave-flash" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" style="width:100px;height:300px;" id="menu3">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="Q3413770-1.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#FFFFFF" />
表示されない
</object>
</p>

<h2>data属性とtype属性を付け加え,classid属性だけを取り除いた(表示されない・IEでもtextarea要素のような枠がでるだけ)</h2>
<p>
<object data="Q3413770-1.swf" style="width:100px;height:300px;" codebase="http://fpdownload.macromedia.com/pub/shockwave/c … id="menu4">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="Q3413770-1.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#FFFFFF" />
表示されない
</object>
</p>

<h2>data属性だけを付け加えた(表示されない・Safari 3.0.4 for Windowsで表示されない)</h2>
<p>
<object data="Q3413770-1.swf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/c … style="width:100px;height:300px;" id="menu5">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="Q3413770-1.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#FFFFFF" />
表示されない
</object>
</p>

<h2>data属性とtype属性を付け加えた(表示されない)</h2>
<p>
<object data="Q3413770-1.swf" type="application/x-shockwave-flash" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/c … style="width:100px;height:300px;" id="menu6">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="Q3413770-1.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#FFFFFF" />
表示されない
</object>
</p>
<h2>結論</h2>
<p>よくわかりません。</p>



</body>
</html>
    • good
    • 0
この回答へのお礼

色々なバリエーションを試していただきありがとうございます

えと試した結果(menu.swfはまだ作成中なので動作確認まではしていないのですが)表示的には

menu0
IE:○ Firefox:× Opera:○
menu1
IE:× Firefox:× Opera:○
menu2
IE:○ Firefox:○ Opera:○
menu3
IE:○ Firefox:× Opera:○
menu4
IE:× Firefox:× Opera:○
menu5
IE:○ Firefox:× Opera:○
menu6
IE:○ Firefox:× Opera:○

となりましたがこれでよいでしょうか?


結論『よく分かりません』とありますがmenu2を使用した場合、何か問題があるということでしょうか?

お礼日時:2007/10/09 14:14

>結論『よく分かりません』とありますがmenu2を使用した場合、何か問題があるということでしょうか?



いや,どっちかというと「何でこんな仕様になっているのかなー」と
問題自体は多分ないと思う。
    • good
    • 0
この回答へのお礼

問題はないということなのでとりあえず安心(?)しました

使用してみて何かありましたらまた投稿します(^^)

お世話になりました

お礼日時:2007/10/09 17:49

W3Cでフラッシュを表示させる方法はいくつかありますが、最近メジャーになって来ているのはJavaScriptを使う方法です。


SWFObjectと言う有名なライブラリがあります。かなり簡単且つ強力です。

http://blog.deconcept.com/swfobject/
http://www.trick7.com/blog/2006/06/15-135235.php
http://phpspot.org/blog/archives/2006/10/flashht …

参考まで。

この回答への補足

styleの定義をしていないのに

style=\""+this.getAttribute("style")+"\"

で使っている為とわかりました

この部分(2箇所)を取り除くか
this.attributes=new Array();の下に
this.setAttribute("style","");を付け加えることで
エラー(警告)回避できました(^^)

補足日時:2007/10/09 17:41
    • good
    • 0
この回答へのお礼

回答ありがとうございます

翻訳文まで載せてもらって至れり尽くせりですね(^^)

試してみたところ『アクティブリンクを有効にする』という1クリックも無くなりFirefoxでも表示されたのですが・・・

Operaでエラー検出されてしまいました(><)
undefined is an unknown property(警告)
Declaration syntax error(エラー)
Unexpected end of file(エラー)

警告: ':' であるべきところが 'undefined' になっています。 このスタイル宣言は無視されました。(Firefox警告)

<script type="text/javascript">
var so = new SWFObject("menu.swf", "mymovie", "200", "100", "7", "#ffffff");
so.write("flashcontent");
</script>

を記述したら出るみたいなのですが何が原因か分かりますでしょうか?

お礼日時:2007/10/09 14:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!