javascriptでプラグイン自動判別

このQ&Aのポイント
  • javascriptでプラグイン判別し、条件に応じてFLASHを表示または別ページを開く方法を知りたい
  • 閲覧環境にプラグインがない場合、別ページを表示させるためにjavascriptでプラグイン判別させたい
  • 代替GIFは表示させる方法は分かるが、別ページを開く方法がわからない。javascriptでのプラグイン判別方法について教えてほしい
回答を見る
  • ベストアンサー

javascriptでプラグイン自動判別

Flashページを制作しています。 閲覧環境にプラグインが入っていない場合 別ページを表示させたいと思っています。 ■現在の内容 元になるhtmlページに下記のように外部japascriptを参照させて そこからFLASHを表示させています。 ----------------------------------- <script src="flash05.js"></script> ----------------------------------- 上記javascript内に、プラグイン判別をさせて プラグインが入っている場合はswfファイルを表示させて 入っていない場合は、別ページを開くように設定したいです。 代替GIFなどを表示させる方法は書いてあるのですが 別ページを開くようにする方法がみつかりません。 お分かりになる方がいらっしゃいましたらご教授いただきたいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

なぜそのようなものを見かけることがないのかを考えられたられたことがありますでしょうか? 答えは, Flash プラグインをインストールしていないPCより, JavaScript を有効にしていないPCの方がはるかに多いからです。 つまり,Flash は入れていても,JavaScript は無効にしていらっしゃる方の方が多いので, そういう細工は全く(ほとんど)無意味なのです。 >> 閲覧環境にプラグインが入っていない場合 >> 別ページを表示させたいと思っています。 これも考え方を逆にすれば,超簡単です。 小さな(10×10ピクセルほどの)Flashを作成します。 そして,そのFlashのタイムラインのフレーム1に次のようなスクリプトを書きます。 getURL("http://www.google.co.jp/"); その Flash が表示されたとたん,Google にジャンプします。 意味がわかりますか? >> 別ページを表示させたいと思っています。 すべての人に別ページを表示させるのです。 そのページに,上で作った 10×10 くらいの小さな Flash を JavaScript 抜きで,タグで表示させます。 Flash プラグインの入っていない PC ではそのページにとどまります。 つまり,「>> 別ページを表示」 したままになります。 プラグインが入っていれば,Google (つまり,本ページ)にジャンプします。

eanak---
質問者

お礼

>sassakunさん お返事がおそくなりまして失礼しました。 理屈につきましては、理解しておりますが 業務上、必要なものたなめ皆さんへ質問しておりましたが こちら側で解決しましたので質問を終了させていただきます。 わざわざご回答いただき、ありがとうございます。

関連するQ&A

  • JavaScriptでFLASHファイルを切り替えるには

    いつもお世話になっています。 3つあるFLASHファイルを、 1.ページ読み込み時にはランダム 2.画像ボタンへのmouseoverで対象に変化 のようにしたいのですが、2が上手く行きません。 flashlist[num]を変化させたところ、ページ全体がオブジェクトだけになってしまいました。 何か良い方法はないでしょうか。 なお、マイクロソフトの月例パッチ(ActiveX)対策で、objectをJavaScriptで書き出しています。 /* HTMLファイルのボタン・FLASH部分 */ <script type="text/javascript" language="javascript" src="flash.js"></script> <img src="button1.gif" mouseover="flashlist(0)" /> <img src="button2.gif" mouseover="flashlist(1)" /> <img src="button3.gif" mouseover="flashlist(2)" /> /* flash.js */ var flashlist = new Array("flash1.swf","flash2.swf","flash3.swf"); var num = Math.floor((Math.random() * 100)) % flashlist.length; document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"  codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" >'); document.write('<param id="movie" value="' + flashlist[num] + '" />'); document.write('<embed src="' + flashlist[num] + '" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>') document.write('</object>');

  • Javascriptについて

    ページA ページB があって ページAにiframeでページBを埋め込んだり、ページB単体で表示したい場合、 それぞれで使用したいJavaScriptはそれぞれで読み込んでも良いですか? 同一のJavaScriptそれぞれのページで読み込む。 <script type="text/javascript" src="xxx.js"></script>

  • jQueryプラグイン、サーバー上だと動かない。

    こんにちは。 このたび制作しているWEBサイトにjQueryプラグインのprettyphotoを実装したいのですが、ローカルの環境では問題なく動いてくれるのですが、サーバーにアップしたとたんにエラーがでてしまいまったく動いてくれません。 <head>内のスクリプトの記述は <script src="js/libs/modernizr-2.0.6.min.js"></script> <script src="js/prettyphoto/js/jquery-1.6.1.min.js"></script> <script src="js/prettyPhoto/js/jquery.prettyPhoto.js"></script> <script type="text/javascript" charset="utf-8"> $(document).ready(function(){ $("a[rel^='prettyPhoto']").prettyPhoto({theme:'light_rounded'}); }); </script> という感じです。 ※そのほか直前にprettyphotoのCSSは読み込んでおります サーバーにアップしたページのソースをみてみるとCan't find variable:$というメッセージがでていたのでプラグインの記述を (function($){ // $(document).ready(function(){ $("a[rel^='prettyPhoto']").prettyPhoto({theme:'light_rounded'}); }); }(jQuery)); // にしてみてもCan't find variable:jQueryというメッセージがでてきてしまいます。 こちらもともとテンプレートであったサイトを改変しているものなので、このほかHTML後半部分にもいろいろjavascriptの記述があります。以下となります。 <script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.1.min.js"><\/script>')</script> <script type="text/javascript" src="js/jquery.easing.1.3.js"></script> <script type="text/javascript" src="js/jquery.easing.compatibility.js"></script> <script type="text/javascript" src="js/jquery.validate.pack.js"></script> <script type="text/javascript" src="js/cycle/jquery.cycle.all.latest.js"></script> <script type="text/javascript" src="js/jquery.tweet.js"></script> <!-- super fish js include --> <script type="text/javascript" src="js/superfish/js/superfish.js"></script> <script type="text/javascript" src="js/superfish/js/hoverIntent.js"></script> <script defer src="js/plugins.js"></script> <script defer src="js/script.js"></script> レイアウトが崩れないようひとつひとつとりはずしてみたのですがprettyphotoは動いてくれませんでした。 またパスが間違っていないかも何度もチェックはしたつもりです。 本当に困っているのですが、このような時どうやって原因を探していけばよいのか、何かアドバイスを いただけたらと思い投稿させていただきました。 当方、WEB制作初心者のため、見当はずれなことを訊いていましたらご容赦ください。 どうぞよろしくおねがいします。

    • ベストアンサー
    • HTML
  • javascriptライブラリの使い方

    aa.js bb.js cc.js の3つのjavascriptを使ったサイトを作成中です。 ヘッダーに <script src="aa.js" type="text/javascript"></script> <script src="bb.js" type="text/javascript"></script> <script src="cc.js" type="text/javascript"></script> と記載し、「aa.js bb.js cc.js 使う前提のスクリプト」をサイト上に記載しているのですが、aa.js bb.js cc.js のそれぞれが重いため、サイト記載のスクリプトがaa.js、bb.js、cc.jsより先に読み込まれてしまい、思ったような表示が出来ません。 (cc.jsが読み込まれないままの状態でサイトのスクリプトを読み終わってしまう) そこで調べてみると、下記のようなライブラリを発見しました。 http://notnil-creative.com/blog/archives/1361 このライブラリ(script.js)を使うと、通常は以下のように書くJavascriptの読み込みが、 <script src="jquery.js"></script> <script src="my-jquery-plugin.js"></script> <script src="my-app-that-uses-plugin.js"></script> 下記のように書くことができるそうです。 $script('jquery.js', function () { $script('my-jquery-plugin.js', function () { $script('my-app-that-uses-plugin.js') }) }) この書き方で、ページのレンダリングを阻害せず、非同期にJavascriptを読み込むことができ、なおかつ「jQueryが読み込まれてからjQueryプラグインを読み込み、そのあとウェブサイト用のスクリプトを読み込む」というような依存関係のある複数のJavascriptファイルの読み込みにも対応できちゃいます。 という優れものであり、私の要求にぴったりと思いました。 早速、http://notnil-creative.com/blog/archives/1361のページからscript.jsをダウンロードしたのですが、使い方がわかりません。 例ではヘッダーに $script('jquery.js', function () { $script('my-jquery-plugin.js', function () { $script('my-app-that-uses-plugin.js') }) }) と記載すればOKと書いてあります。 ただ、この記入方法で動くようにするためには、$scriptがscript.jsに連動していることを記載すべき だと思いますが、javascriptでそのような例を見たことがなく困惑しています。 このスクリプトの使い方(ヘッダーの記入方法)について、ご教授頂けませんでしょうか? 宜しくお願い致します。

  • thickboxのjavascriptについて

    ウェブサイト作成初心者です。 ホームページの一部のページでthickboxを使用してhtmlを表示するページを作ろうとしています。 その場合 <head>~</head>内に <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="thickbox.js"></script> <link href="thickbox.css" rel="stylesheet" type="text/css" /> はthickboxを使うページだけに記述すればいいのでしょうか。それとも前ページに記述しないといけないのでしょうか。 お分かりなられる方、お手数ですが教えてくださいませ。

    • ベストアンサー
    • HTML
  • JavaScript内にJavaScriptを読み込む方法

    HTML内に <script type=\"text/javascript\" src=\"main.js\"></script> という一行を追加すると、バナーが表示されるというスクリプトを作成しています。 main.jsは、 html = \'<script language=\"JavaScript\">\'; html += \'var url0101 = \"url01.xxx.jp\";\'; html += \'var url02 = \"url02.oooo.jp\";\'; html += \'</script>\'; html += \'<script language=\"JavaScript\" src=\"http://xxx.xxxx.xxx/test.js\"></script>\'); html += \'<script language=\"JavaScript\">\'; html += \'Function01(\"check\")\'; html += \'</script>\'; document.write(html); というような風になっており、 (1) 変数の宣言 ↓ (2) http://xxx.xxxx.xxx/test.jsの読み込み ↓ (3) (2)で読み込んだjs内の関数Function01を実行 という流れです。 FireFoxでは表示されましたが、IE6では (2)のjsを読み込む前に(3)のFunction01が実行され、 「オブジェクトを指定してください」のエラーが表示されてしまいます。 よい方法がありましたら教えていただけますでしょうか? よろしくお願いします。

  • javascriptの中でjavascriptを呼びだしたいのです。

    javascriptで質問です。 javascriptの中でjavascriptを呼びだしたいのです。 実際にやるとエラーになりますが、方法はありますでしょうか。 xが1のとき、script1.js xが2のとき、script2.js のように実行を分けたいので、このような処理を したいのですが。 何卒よろしくお願いいたします。 <script type="text/javascript"> <script type='text/javascript' src='http://www.domain.com/script1.js'></script>"; </script>

  • JavaScriptプラグインが読み込めません

    「easySlider1.7」というJavaScriptプラグインを使い、サイト内の画像をスライドさせようとしています。 MacのデスクトップにおいたフォルダのHTMLと同じ階層にeasyslider1.7というフォルダをおき、<head>内に <script type="text/javascript" src="easyslider1.7/js/easySlider1.7.js" ></script> <script type="text/javascript" src="easyslider1.7/js/jquery.js"></script> と記述し、 <script type="text/javascript"> $(document).ready(function(){ $("#slider").easySlider({ auto:true }); }); </script> で動作させようとしているのですが、 ブラウザで試すと動かず、コンソールには ReferenceError: Can't find variable: jQuery TypeError: Result of expression '$("#slider").easySlider' [undefined] is not a function. と出てきます。 上段の”jQuery”はeasySlider1.7.js内に記述されているものです。 ちなみにgoogleAPIのjQueryをロードしても同じエラーが出ました。 何が原因なのでしょうか。ご回答宜しくお願いします。

  • Javascriptでブラウザ判別、iframe内の子要素にscrollingの指定をするには?

    Javascript初心者です。いろいろ探したのですが解決方法がわかりません。 index.htmlにiframe(name=""main)があり、それぞれの子要素にtarget="main"で指定しているHPを作成したのですが、子の要素にカスタマイズスクロールバー(flexcroll http://youmos.com/news/flexcroll_js )を取り入れています。 ※ちなみに上記iframeはindex.html内でサイズやリンク先などを指定しているのですが、そこでscrolling="no"にしています(子のflexscrollと重複するので)。 MacIEとSafariではスクロールバーが表示されません。(Winはfirefox、IE6、Opera9、Netscape7.1、Macではfirefoxはflexcroll表示確認済みです。) その不具合の対処にindexのhead内に<script type="text/javascript" src="../js/distinction.js"></script>にブラウザ判別をさせて、 MacIEとSafariには別のjsファイルを適用させ、flexcrollを無効にし、デフォルトのスクロールバーが出るように指定したいのですが、 上記※にあるとおり、index内でiframeのscrollingをnoにしているため、どうしたらいいのかわからなくて困っています。 下記がdistinction.js内のスクリプトです(調べながら作成したので自信がありません)。 // JavaScript Document if(navigator.userAgent.indexOf('Gecko/')!=-1) { document.write('<script language="javascript" src="js/flexcroll.js"></scr'+'ipt>\n'); } else if (document.window.clipboardData) { document.write('<script language="javascript" src="js/flexcroll.js"></scr'+'ipt>\n'); } else { document.write('<script language="javascript" src="js/macIE.js"></scr'+'ipt>\n'); } } else if (window.opera) { document.write('<script language="javascript" src="js/flexcroll.js"></scr'+'ipt>\n'); } else if(navigator.userAgent.indexOf('AppleWebKit')!=-1) { document.write('<script language="javascript" src="js/macsafari.js"></scr'+'ipt>\n'); } else { document.write('<script language="javascript" src="js/other.js"></scr'+'ipt>\n'); } // --> また、flexcroll.jsを適用しないもののjsファイルの中身もなんと記述したらいいのかわかりません。そもそも、この対処法であっているのでしょうか? 間違いや解決方を教えてください。

  • Flashプラグインがブラウザにあるか自動判別

    はじめまして。☆^∇゜)ニ FlashファイルのみのWebサイトがあるのですが、閲覧者がアクセスしてきて、プラグインがブラウザに入っている場合はそのままFlashのページが表示され、入っていない場合は別のHTMLページへ飛ぶという一連を自動で行えるスクリプトってどういったものなのでしょうか。 教えていただけるととても助かります。(p_・q) 宜しくお願いいたします。