アクセスしてきた端末が指定したユーザーエージェントに当てはまるときに、指定したURLにリダイレクトさせるためのJavaScriptです。
jQueryなどのフレームワークに頼らずに、スタンドアローンで動作します。
まず、HTML文書内で「ua_redirector.js」を読み込ませます。
<script src="js/ua_redirector.js"></script>
UARidirecor
オブジェクトのインスタンスを、パラメータを設定して作成し、redirect
メソッドを実行します。
<script>
var myRedirect = UARedirector({
cond: 'mobile',
url: 'http://www.example.com/mobile/'
});
myRedirect.redirect();
</script>
上のコードでは、**このページにアクセスしてきた端末がスマートフォンであれば、http://www.example.com/mobile/
にリダイレクトする、**という動作になります。
このように、インスタンスを作成する際に、cond
にアクセスしてくる端末の種類(pc
/ tablet
/ mobile
)を、url
にリダイレクト先のURLをそれぞれ指定します。
たとえば、スマートフォンからPCサイトにアクセスしたいユーザーのために、スマートフォン向けのページにPC向けサイトに切り替えるためのリンクを設置することがあります。
しかし、一旦PCサイトに切り替えた後、再び同じURLを訪れたり同じサイトの別のページにアクセスした際に、スマートフォン向けサイトに戻ってしまっては不便です。
そんなときのために、UARedirector.js
には、一定時間、UAを任意のものに固定(偽装)しておく機能があります。
<a href="../index.html" id="switch-to-pc">PCサイトを表示する</a>
<script>
// ※このコードは、「jQuery」を事前に読み込んでいることを前提としたものです。
$('#switch-to-pc').on('click', function () {
myRedirect.fixUA('pc');
// どの端末でアクセスしても、PCからアクセスしてきたように振る舞うようにする。
});
</script>
プロパティ名 | 型 / 初期値 | 意味 |
---|---|---|
cond | string | boolean / 'mobile' | リダイレクトさせる条件を指定します。'pc'、'mobile'、'tablet' のいずれかを設定しますが、独自の条件を指定したい場合は、真偽値または真偽値を返す関数や式を設定することもできます。 |
url | string / '' | リダイレクト先のURLを指定します。絶対パスでも相対パスでも構いません。 |
history | boolean / false | リダイレクト前のURLを、ブラウザの履歴に残すかどうかを設定します。内部的には、リダイレクトがreplace メソッドによるものかhref プロパティの置き換えによるものかを切り替えているだけです。 |
cookieName | string / 'ua-redirector-ua' | fixUA メソッドなどを使用する場合に必要なクッキーの名前です。 |
cookieExpires | number / 1 | クッキーの有効日数です。 |
cookiePath | string / '/' | クッキーが有効なディレクトリです。 |
cookieDomain | string / '' | クッキーが有効なドメインです。 |
</tbody>
メソッド名 | 引数 | 説明 |
---|
- Google Chrome - 最新
- Firefox - 最新
- Internet Explorer - 11, 10, 9, 8, 7
- Android 4.0.3 - ブラウザ
- 8.3 - Safari
※Androidのバージョンによっては、タブレットとモバイルの区別がつかず、タブレットでアクセスしてもモバイル向けサイトにリダイレクトすることがありますが、これは仕様で、Android端末の画面サイズ・解像度が多岐にわたるためです。対応する場合は、スクリプトを拡張するか、cond
プロパティに独自の条件(boolean
型)を設定してください。