2012-01-04 11 views
0

私は既存のWebサイトのモバイル版を開発しました。リダイレクトを処理するために、サイトのデスクトップバージョンのホームページにJavaScriptを追加しました。このコードは、リダイレクトの前にホームページのコピーが表示されることを除いて、モバイルデバイス上で動作します。誰もがこれを助けることができるか、誰かがページが読み込まれる前にJavaScriptを実行させる方法を知っていますか? JavaScriptコードの例を以下に示します。シームレスなモバイルリダイレクトスクリプト

また、サイトのデスクトップホームページはHTML形式であり、PHPはオプションではありません。また、恒久的なモバイルリダイレクトをしたくありません。ユーザーは必要に応じてデスクトップバージョンにアクセスできるようにしたいと考えています。

コード:

<!doctype html> 
<head> 

<!--start JavaScript code--> 
<script> 
    if (screen.width < 500 || 
    navigator.userAgent.match(/Android/i) || 
    navigator.userAgent.match(/webOS/i) || 
    navigator.userAgent.match(/iPhone/i) || 
    navigator.userAgent.match(/iPod/i) || 
    navigator.userAgent.match(/BlackBerry/) || 
    navigator.appName("Chrome")) { 
     window.location.replace("TexasLandBankMobile/default.html"); 

</script> 
<!--end JavaScript code--> 

<title>Test</title> 
</head> 
<body> 
<div id="container"> 
    This is not a mobile device <br/> 
</div> 
</div> 
</body> 
</html> 

任意の助けいただければ幸いです。

答えて

0

リアクションデザインを使用して、モバイルユーザーをホームページ以外の場所に送信しないのはなぜですか。

あなたがサーバーレベル(Apacheの書き換えなど)でリダイレクトしない限り、あなたが求めるものはできません。

+0

ご回答ありがとうございます。我々は、リアクティブデザインを実装する時間がありません。サーバーレベルで実装する方法はありますが、モバイルユーザーは必要に応じてデスクトップバージョンに移行することができます。 –

+0

@RobertDavisはい、サーバー上でリダイレクトを行うときには、 '?desktop = true'や' desktop = true'クッキーのようなURLでクエリ文字列を探しますか?そのフラグが設定されている場合は、 'desktop = true'のクッキーを設定して、メインサイトに渡します。クッキーが設定されている場合は、それらをメインサイトに通してください。あなたのメインサイトには、モバイル版と呼ばれるリンクがあり、クッキーを削除してモバイル版にリダイレクトします – tkone

0

あなたの最善の賭けは、ユーザーがあなたのページにアクセスする前にリダイレクトすることです。そうすれば、ユーザーは、膨大なデスクトップバージョンのサイトをダウンロードするのを待つ必要はありません。

回避策として、ページの両方のバージョンを非表示にしてから、サイトのデスクトップ/モバイル版を表示するように設定することもできます。

<script> 

function isMobileDevice() { 
    return screen.width < 500 || 
     navigator.userAgent.match(/Android/i) || 
     navigator.userAgent.match(/webOS/i) || 
     navigator.userAgent.match(/iPhone/i) || 
     navigator.userAgent.match(/iPod/i) || 
     navigator.userAgent.match(/BlackBerry/) || 
     navigator.appName("Chrome")); 
} 

if (isMobileDevice()) { 
    window.location.replace("TexasLandBankMobile/default.html"); 
} else { 
    // set container div to visible 
    document.getElementById('container').style.visibility = 'visible'; 
} 

</script> 
関連する問題