以前、.htaccessでPCサイトとスマートフォンサイトのアクセスを振り分けるには?という記事を書きましたが、今回はJavaScriptをページそのものに記述して、アクセスした端末を判別してPCサイトもしくはスマートフォンサイトに飛ばす方法をご紹介したいと思います!

端末判別させるJavaScriptのコード(PC→スマートフォン)

 まず、端末判別させスマートフォンサイトに飛ばすJavaScriptのコードは以下になります。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></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 = '飛ばしたいスマートフォンサイトのURL';
}
</script>

これをPCサイトのコードのどこかに記述してあげることで、スマートフォンからPCサイトにアクセスがあった時には自動でスマートフォンサイトに飛ばすようになります。

例えば、
PCサイト → https://ku-su.com/new/
スマートフォンサイト → https://ku-su.com/new/sp/

とした場合、PCサイトに以下のようにJavaScriptのコードを記述することでスマートフォンサイトに飛ばせるようになります。

<script>
if ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0) {
location.href = 'https://ku-su.com/new/sp/';
}
</script>

端末判別させるJavaScriptのコード(スマートフォン→PC)

 続いて、スマートフォンサイトにPCからアクセスがあった際には、PCサイトに飛ばす…という記述方法になります。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

<script>
$(function(){
var agent = navigator.userAgent;
    if(agent.search(/iPhone/) != -1 || agent.search(/iPad/) != -1 || agent.search(/iPod/) != -1 || agent.search(/Android/) != -1){
	} else {
        location.href = 'PCサイトのURL';
    }
});
</script>

こちらをスマートフォンページに記述することでPCからアクセスがあった際にはPCサイトに飛ばしてくれるようになります。
基本的にPCからスマートフォンページを見てしまう…ということはあまりないのですが、念のため記述しておくことをオススメします!

まとめ

 今回紹介したコードは、LP(ランディング)ページや1ページ構成のサイトの時に記述すると便利かと思います!
ただ、ページ数が複数あるような普通のサイトの場合でなおかつhtmlファイルで作成しているサイトの場合は全てのhtmlファイルにコードを記述する必要があり、抜けが生じてきてしまう場合があります…。

なので、そのような場合には.htaccessでPCサイトとスマートフォンサイトのアクセスを振り分けるには?で紹介したように.htaccessに端末判別させる記述をしてあげることで抜けなく全てのページで端末判別をしてくれるようになるので、時と場合によって使い分けるようにしましょう!

スポンサーリンク