2012-02-09 5 views
0

"detect"というIDのボタンを持つandroid.htmlというページがあります。ボタンをクリックすると、スクリプトは、あなたのアンドロイドデバイスのOSバージョンをusヘッダーで確認します。バージョン3.0以上の場合はスタイルを適用するためにスクリプトを変更し、バージョン2.9以下の場合は別のスタイルを変更する方法を教えてください。難しい部分はここにあります...私はandroid.htmlページにCSSスタイルを適用したくありませんが、ボタンをクリックするとリダイレクトされるplaylist.htmlページに適用したいと思います。そして、次にそのGET PARAMをチェックし、クエリ文字列、つまりplaylist.html?CSS = v1またはv2を持つそのhtmlページへjqueryが次のページのCSSを変更する

<div id="detect">button</div> 

JS

$('#detect').click(function() { 
if (/Android (\d+(?:\.\d+)+)/.test(navigator.userAgent)){ 
var version=new Number(RegExp.$1) 
if (version>=3) 
    //redirect to playlist.html using style1.css 
} 
else 
//redirect to playlist.html using style2.css 
}); 
+1

プレイリストページでdocument.readyのチェックを行い、別の2つのリダイレクトを行うのではなく、その時点で適切なスタイルシートをロードする方が簡単でしょうか? – Carter

+0

合意。あなたはプレイリストファイルのそのチェックに本当にすべきです。 – pseudosavant

答えて

0

リダイレクトにクエリー文字列のキーと値のペアを追加すると、ロードするスタイルシートを次のページに知らせるか、次のページが読み込まれるときにユーザーエージェント文字列をチェックするだけです。その後playlist.htmlページの

$('#detect').click(function() { 
    if (/Android (\d+(?:\.\d+)+)/.test(navigator.userAgent)){ 
     var version=new Number(RegExp.$1) 
     if (version>=3) 
      window.location = 'playlist.html?style=1'; 
     } else { 
      window.location = 'playlist.html?style=2'; 
     } 
    } 
}); 

if (window.locaion.search.indexOf('style=1') > -1) { 
    $.getScript('style1.css'); 
} else if (window.locaion.search.indexOf('style=2') > -1) { 
    $.getScript('style2.css'); 
} 

このif/thenチェックは非常に単純です。より良い方法は、配列内のクエリ文字列パラメータを取得し、styleキーを確認し、対応する値をロードすることです。

+0

私はplaylist.htmlにクエリー文字列を読み込むにはどうすればよいでしょうか? – Blainer

+0

@Blainer値の 'window.location.search'プロパティをチェックする方法で私の答えを更新しました。 PHPのようなサーバー側のスクリプト言語を使用している場合は、このチェックをクライアント側ではなくサーバー側で行うことをお勧めします。 – Jasper

+0

ボタンをクリックして何らかの理由でplaylist.htmlにリダイレクトさえしない – Blainer

0

リダイレクト

HTML、適切なCSSファイルを含めてください。

0

"anversion"を指定したリダイレクトにクエリ文字列変数を渡し、その変数をチェックし、2番目のページの値に基づいて.cssファイルを挿入する必要があります。

関連する問題