質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

319閲覧

javascriptのindexOfの引数で配列を渡したいのですがうまくいきません。

Kuri9898

総合スコア18

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/12/13 08:53

###前提・実現したいこと
javaScriptにて
変数userにnavigatorオブジェクトのuserAgentのtoLowerCaseメソッド
を用いて、小文字で端末情報を取得します。
その後、配列へ
hardware = ['ipad' , 'iphone' ・・・etc];
という風に文字列を配列で格納しておきます。
for(var i = 0; i < hardware.length ; i++){
if(user = user.indexOf('hadrware[i]') > -1){ //ここの文がおかしい
//使用しているハードウェアをwindowへ出力
}
}
というものを実装しようとしているのですがうまく行きません。
どなたかご指南いただけないでしょうか?

###発生している問題・エラーメッセージ

Uncaught

1 2###該当のソースコード javaScript 3 4<!DOCTYPE html> 5<html><head><meta charset="UTF-8" /> 6</head><body> 7<script> 8 9//ユーザーエージェント文字列を取得し、小文字にする 10var userInfo = window.navigator.userAgent.toLowerCase(); 11 12// ユーザー情報を変数に格納 13var chrome = (userInfo.indexOf('chrome') > -1) && 14 (userInfo.indexOf('edge') === -1) && 15 (userInfo.indexOf('opr') === -1); 16 17// 判定を行う 18if(chrome === true){ 19 20 //ユーザーエージェント文字列を表示 21 console.log('Chrome:' + chrome); 22 document.write( 23 "<p>" + "ご使用のブラウザはgoogleChromeです。" + "</p>"); 24}else{ 25 document.write( 26 "<p>" + "ご使用のブラウザはgoogleChromeではありません。" + "</p>"); 27} 28// userの位置情報を取得 29var userGeolocation = window.navigator.geolocation; 30 31// document.write(geolocation); 32// コンソール画面に位置情報を出力 33document.write("<p>" + userGeolocation + "</p>"); 34 35//user情報を小文字で取得 36var userJudge = window.navigator.userAgent.toLowerCase; 37var hardware = ['ipad' , 'iphone' , 'android' , 'mac' , 'windows']; 38var boole = false; 39 40// 繰り返しで判断を行う 41for(var repetition = 0 ; repetition < hardware.length ; repetition++){ 42 if(userJudge.indexOf('hardware[repetition]') > -1) 43 { 44 document.write( 45 "<p>" + "ご使用のハードウェアは" + hardware + "です。" + "</p>"); 46 boole = true; 47 } 48} 49 50// その他の場合 51if(boole === false){ 52 document.write( 53 "<p>" + "ご使用のハードウェアはその他の端末です" + "</p>"); 54} 55 56document.write("<p>"); 57 //ユーザーエージェント文字列から下記の文字列が入っていたら、表示をかえるプログラムを入れる 58 59//'iPad' iPadです 60//'iPhone' iPhoneです 61//'Android' Androidです 62//'Mac' macです 63//'Windows' windows osです 64//どれでもない場合 そのほかの端末です 65 66document.write("</p>"); 67 68 //スクリーンの高さを表示 69heightLength = window.screen.height 70document.write( 71 "<p>" + "ウィンドウの高さは、" + heightLength + "です。" + "</p>"); 72 73 //スクリーンの幅を表示 74var widthLength = window.screen.width; 75document.write( 76 "<p>" + "ウィンドウの横幅は、" + widthLength + "です。" + "</p>"); 77 78</script> 79</body></html> 80 81 82 83###試したこと 84''を外してみたりしてみましたがだめでした。 85###補足情報(言語/FW/ツール等のバージョンなど) 86vimで書いています。 87ブラウザはgooglechromeです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

x_x

2017/12/13 09:02

外すとどうなりましたか?
Kuri9898

2017/12/13 09:56

外すと適用されるようでした。
guest

回答1

0

for(var i = 0; i < hardware.length ; i++){

if(user = user.indexOf('hadrware[i]') > -1){ //ここの文がおかしい
//使用しているハードウェアをwindowへ出力
}
}

全体的に微妙な感じですが

javascript

1var userInfo = window.navigator.userAgent.toLowerCase(); 2var hardware = ['ipad' , 'iphone']; 3for(var i = 0; i < hardware.length ; i++){ 4 if(userInfo.indexOf(hardware[i]) > -1){ 5 console.log("なんたら・・・"); 6 } 7}

投稿2017/12/13 09:03

yambejp

総合スコア114738

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kuri9898

2017/12/13 09:57

ありがとうございます。 toLowerCaseの()がなくまた、''を外すと適用されました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問