• ベストアンサー

indexOf("Internet Explorer")!=-1 とは何のこと?

送信内容確認フォームのソースサンプルに if(navigator.appName.indexOf("Internet Explorer")!=-1){…… というスクリプトがあるのですが、 indexOf("Internet Explorer")!=-1 の部分が何のことかわかりません。 お教えいただければ幸いです。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

文字列.indexOf(検索文字列) は、検索文字列を文字列の中から探して見つかればその位置を0始まりの位置で返します。 見つからない場合は-1を返します。 つまり、 navigator.appNameの中に"Internet Explorer"という文字列があるかどうかを調べて-1 でない(!=) つまり、navigator.appNameにInternet Explorerが含まれていれば、……の処理を行うということです。

noname#19070
質問者

お礼

明快なご解説ありがとうございます。 よくわかりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • Blaise
  • ベストアンサー率33% (13/39)
回答No.2

そのスクリプトを読み込んだブラウザが、Internet Explorerだった ら、{....}の中のことをしなさいという命令です。 条件分岐を示しています。

noname#19070
質問者

お礼

ご回答ありがとうございます。 概要がわかりました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

indexOfは文字列検索です。 ユーザーエージェントを調べている時にInternet Explorerかどうかを調べています。

noname#19070
質問者

お礼

さっそくのご回答ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Ajaxに関して。

    Ajaxに関するサンプルを練習で作成していたところ、 if (navigator.appName.indexOf("Microsoft") > -1) { xmlhttp.onreadystatechange = showText; } else { .... } ってい書いてあるところがあったのですが、"> -1"のマイナス1より大きいっていうのはどういう意味なんでしょう?よくわからないです・・ 内容が不十分かもしれませんが、わかるかたいらっしゃいますか?

  • document.write が作動してくれません!

    /* ブラウザが 「IE Version 5 以上」 または 「Netscape Navigator Version 4 以上」 のときに文字列を出力するつもりで、以下のscriptを書きましたが、IE Version 6 のパソコンで文字列が出力されません。 (エラーにはなりません。インターネット・セキュリティは既定レベルの「中」です。) 何が間違いなのかお教えくださいませ。 <script type="text/javascript"> <!-- if ( ( (navigator.appName.indexOf("Microsoft") >=0)&&(navigator.appVersion.charAt(0) >4) ) || ( (navigator.appName.indexOf("Netscape") >=0)&&(navigator.appVersion.charAt(0) >3) ) ) { document.open(); document.write("「パソコン申し込み」 では、入力していただいた貴下の個人情報を送信する際に、情報の暗号化をおこないます。"); document.close(); } //--> </script> */

  • リンク先のアドレス欄のURLの表示について

    もともと諸事情により、社員のIEのデフォルトページに  http://hoge.co.jp/a.html を設定し、実際にはこのa.htmlにはJavaScriptで  <script language="JavaScript">  <you=navigator.appName;  if(navigator.appName.indexOf("Internet Explorer")==-1)   location.href="http://www.***.co.jp/index.html";  //--></script> として別ページに飛ばしています。 ところが飛ばした先のページは開くのですが、IEのアドレス欄が「http://hoge.co.jp/a.html」の ままになっています。これを正規の「http://www.***.co.jp/index.html」と表示したいのですが どうしたらいいでしょうか? IEのデフォルトページの設定を替えればいいのですが、端末も多く、他にも事情があり、 直ぐにできそうもありません。ご存知の方ご教示下さい。

    • ベストアンサー
    • HTML
  • jQueryで画像置換が上手くいきません

    PCサイトをスマホで読み込んだ場合に、特定の画像を小さいサイズに置換して表示したいのですが、色々調べたところ、jQueryで画像置換ができるというサンプルがあったので用いたのですが、上手くいきません。 都合上、スマホ専用サイトを作成するという方針ではありません。 よって、所どころ画像置換する必要があり、どうしても実現させたいのです。 サンプルスクリプトは以下の通りです。 if文は他のスクリプトでも使用しており動いているので、合っていると思っています。 何がいけないのでしょうか? -------------------------------------------------------------------- <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>画像置換</title> <script src="js/jquery.js"></script> <script> if ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0) { $('h1>img').attr('src', 'images/aaa.jpg').attr('width', '320').attr('height', '50'); } </script> </head> <body> <header> <h1><a href="index.html"><img src="images/bbb.gif" width="700" height="100" alt="hoge" /></a></h1> <header> </body> </html> -------------------------------------------------------------------- ちなみに、構文エラーは出ません。 サンプルスクリプトの出所は http://ascii.jp/elem/000/000/561/561127/index-3.html で、スクリプトの内容は以下の通りでした。 if ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0)) { $('h1>img').attr('src', '_images/ttl_main_mini.png').attr('width', '665').attr('height', '217'); } おわかりになる方、ぜひアドバイスください。お願いします。

  • 外部javascriptの読み込み方

    下記ソースのjavascriptにて外部javascript内容を読み込もうとしています ==呼び出すファイル(test.htm)========================== <head> <script type="text/javascript" src="common.js"> <!-- function init() { setBrowser(); alert(getBrowser()); } --> </script> </head> <body onload="init();"> てすと </body> </html> ================================================== ==呼び出されるファイル(common.js)=================== <!-- var strBrowser; function setBrowser() { if(navigator.userAgent.indexOf("MSIE") != -1){ // IE strBrowser = "IE"; } else if(navigator.userAgent.indexOf("Firefox") != -1){ // FireFox strBrowser = "Firefox"; } else if(navigator.userAgent.indexOf("Safari") != -1){ // Chrome & Safari strBrowser = "Safari"; } else{ strBrowser = ""; } } function getBrowser() { return strBrowser; } //--> ================================================= これで呼び出す事ができません。 何処が悪いのか、ご指摘頂ければ幸いです。

  • ホームページビルダー19

    お世話になっております。 ホームページビルダー19でサイトを運営しているのですが、トップページのソースを見ると、下記の記述があります。これは自動で記述されるものなのでしょうか?どのように、ホームページビルダーのソフトで設定すれば、以後、この記述を削除できるのでしょうか?よろしくお願いいたします。 <!--HPB_SCRIPT_UAREDIRECT if(document.referrer.indexOf(document.location.hostname)==-1){ if (navigator.userAgent.indexOf('iPhone') > 0 || (navigator.userAgent.indexOf('Android') > 0 && navigator.userAgent.indexOf('Mobile') > 0)) {location.href = 'sp/index.html';}}//-->

  • ブラウザ判定でMozilla Firefoxの取得の方法

    IEかNNかを見分けるためのサンプルソースを見たら navigator.appName を使用していました。 しかしappNameが返すのは"Microsoft Internet Explorer"か"Netscape"かの2つしかない(とほほによると)ので、それ以外の判定ができません。 ほかの方法などで判定できるのでしょうか?もしかしたら、むずかし~いソースになってしまいますか? JavaScriptを今少しかじっているところですが、ブラウザごとの仕様の違いに少しとまどっています。 IEとNNを比較して解説したサイトは多いのですが、FireFoxも考慮に入れたサイトはあまり見かけません。 もしありましたら紹介おねがいします。

  • javascriptでスマートフォン・PC分岐

    PC用のサイトとスマートフォン用のサイトをそれぞれ作り、アクセスをjavascriptで振り分けたいと考えています。 PC用とスマートフォン用のURLはあいだに"i"をはさむ違いだけです。 http://www.hoge/cate1/post_001.html http://www.hoge/i/cate1/post_001.html いろいろ調べた結果、トップページは下記でうまく行きました。 <script type="text/javascript"> if ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0) { location.href = '/i/'; } </script> 問題は個別ページがうまく行きません。自分なりに調べて下記のように書きました。 <script type="text/javascript"> if ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0) { location.href = '/i/location.pathname'; } </script> ところがこれではhttp://www.hoge/i/location.pathnameに行ってしまいダメです。 なぜダメなのでしょうか? この場合、どのように記述すれば良いか教えてください。 PHPとCGIとかはさっぱり判らないのでその選択肢はありません。 よろしくお願いします。

  • UAによるリダイレクト

    スマートフォンからのアクセスを他のページに飛ばすために どうにか方法がないかと思って、いろいろ調べて勉強しております。 そこで以下のような記述でできることが分かったのですが、 javascriptなどについて詳しくないため、-1や0の意味が分かりません。 -1、0はどういう意味なのでしょうか? <script type="text/javascript"> if (document.referrer.indexOf('muay-thai-pck.com') == -1 && ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0)) { location.href = 'url'; } </script>

  • PC用のサイトとスマートフォン用のサイトの振り分け

    以前、このサイトで検索して、トップページは <script type="text/javascript"> if ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0) { location.href = '/i/'; } </script> でできました。 ですが、最近、スマートフォンを新しくしたら、トップページが表示されなくなってしまいました。 どうしてでしょう? あと、トップページ以外のページはどのように振り分けをすればよいのでしょうか? よろしくお願いします。