- ベストアンサー
IEでのみ作動しないJavaScriptがあり困っています
自分のサイトでFLV動画を流したいのですが、動画の再生にはFlashPlayer8以上が必要です。 そこで、Dreamweaverが自動で挿入してくれるスクリプトでプレイヤーの有無とバージョンを確認し、 無い又は8未満の場合にはアドビのダウンロードページへ誘導できるようにしました。 しかし、IE(確認したのは6)でのみ作動してくれません。 Firefox、Safari、Operaでは問題なく動きます。 何か解ることがあれば教えて下さい。 よろしくお願いいたします。 問題のスクリプトを以下に示します。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>検出試験</title> <script type="text/javascript"> function MM_CheckFlashVersion(reqVerStr,msg){ with(navigator){ var isIE = (appVersion.indexOf("MSIE") != -1 && userAgent.indexOf("Opera") == -1); var isWin = (appVersion.toLowerCase().indexOf("win") != -1); if (!isIE || !isWin){ var flashVer = -1; if (plugins && plugins.length > 0){ var desc = plugins["Shockwave Flash"] ? plugins["Shockwave Flash"].description : ""; desc = plugins["Shockwave Flash 2.0"] ? plugins["Shockwave Flash 2.0"].description : desc; if (desc == "") flashVer = -1; else{ var descArr = desc.split(" "); var tempArrMajor = descArr[2].split("."); var verMajor = tempArrMajor[0]; var tempArrMinor = (descArr[3] != "") ? descArr[3].split("r") : descArr[4].split("r"); var verMinor = (tempArrMinor[1] > 0) ? tempArrMinor[1] : 0; flashVer = parseFloat(verMajor + "." + verMinor); } } // WebTV has Flash Player 4 or lower -- too low for video else if (userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 4.0; var verArr = reqVerStr.split(","); var reqVer = parseFloat(verArr[0] + "." + verArr[2]); if (flashVer < reqVer){ if (confirm(msg)) window.location = "http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"; } } } } </head> <body onload="MM_CheckFlashVersion('8,0,0,0','このページのコンテンツを表示するには最新バージョンの Adobe Flash Player が必要です。今すぐダウンロードしますか?');"> </body> </html>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
お礼
書き込みありがとうございます。 No.1の方のところにも書きましたとおり、自分はまだjavascriptをきちんと理解できていません。 どこをどう直したらよいかもわかりせん。 ただ、せっかく詳しく書いていただいたので、「わかりません」だけでは失礼と思い、参考書やサイトをみて頑張ってみました。 しかし、やはり今の自分には理解できるものではありませんでした。 見ず知らずの者のためにスクリプトまで書いていただいたのに、すみません。 また、色々調べていくうちにwindowsだけはjavascriptではなく、ActiveXを使うと説明しているサイトがあったり、余計にわからなくなってしまいました。 しかし、示していただいたスクリプトなら作動検証済みということなので、IEも含めてそれ単体で問題なく作動するのですよね。 図々しくて気が引けるのですが、もしよろしければ実際にはこう書くとうのを見せていただくことはできませんでしょうか。