2012-02-09 2 views
0

"detect"라는 ID를 가진 버튼이있는 android.html 페이지가 있습니다. 버튼을 클릭하면 스크립트가 us 헤더에있는 Android 장치에있는 OS 버전을 확인합니다. 버전 3.0 이상이면 스타일을 적용하고 버전 2.9 이하이면 다른 스타일을 적용하려면 스크립트를 어떻게 변경해야합니까? 여기에 어려운 부분이 있습니다 ... 나는 css 스타일을 android.html 페이지에 적용하고 싶지는 않지만 playlist.html 페이지에는 버튼 클릭으로 리디렉션됩니다.다음 페이지의 CSS를 변경 jquery

HTML

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

JS

쿼리 문자열이 HTML 페이지에
$('#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의 체크를 수행하고 두 개의 별도 리디렉션을 사용하지 않고 해당 시점에 적절한 스타일 시트를로드하는 것이 더 쉬울 수 없습니까? – 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

@ 블레 이너 방금 값에 대한 'window.location.search' 속성을 확인하는 방법으로 내 대답을 업데이트했습니다. PHP와 같은 서버 측 스크립팅 언어를 사용하는 경우이 체크를 클라이언트 측이 아닌 서버 측에서 수행하는 것이 좋습니다. – Jasper

+0

버튼을 클릭 할 때 어떤 이유로 든 playlist.html로 리디렉션되지 않습니다. – Blainer

0

리디렉션 즉 playlist.html? CSS = v1 또는 v2를, 그 다음에 그 GET PARAM 확인을 적절한 css 파일을 포함하십시오.

0

"anversion"을 지정하는 리디렉션에 쿼리 문자열 변수를 전달하고 해당 변수를 확인한 다음 두 번째 페이지의 값을 기반으로 .css 파일을 삽입해야합니다.

관련 문제