リダイレクト先もボタンのリンクも変更されず、その原因がわからず悩んでおります
他にも原因はあるかもですが、少なくともindexOf()の仕様について誤解があるか、実際にWindowsを使用した場合のUAについて確認出来ていないように思います。
string.prototype.indexOf()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf
は大文字小文字を区別する(上記ページ内検索「大文字」で検索してみてください)のでwindows nt
で判定することはできません。
例
Javascript
1//win11+chromeのUAの例2var ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36";3console.log(ua.indexOf('windows nt')); // -1になる4console.log(ua.indexOf('Windows NT')); // 13になる5
例えば、AndroidやWindowsの場合はyahooのページに飛ばし、
それ以外の端末(iPhoneやiPad、Macなど)の場合はgoogleに飛ばす…といった挙動は
どのようなコードを組めば可能でしょうか。
いきなり全部実装しようとすると、どこに原因があるか分からなくなってしまうので、
まずは上記のような形で想定通りの判定が出来るかどうかをチェックするための最低限のコードを書いてみて、一つづつデバッグしてみてください。
デバッグ方法について学習したことが無い場合はJavaScript デバッグ方法
あたりで検索してみてください。
自力で書くこと自体が目的で無いのであれば、UAを判定してくれるライブラリを使用するのが楽です。JavaScript UA判定 ライブラリ
あたりで調べてみてください。
0 コメント