2014-07-10 4 views
0

다음은 현재 사용중인 Javascript 코드입니다.iPad에서는 선택 상자 재설정이 작동하지 않지만 Windows에서는 Chrome에서 작동합니다.

$(document).ready(function(){ 
    $('#altNav').change(function(){ 
     var altNavSelectedVal = $('#altNav').val(); 
     if (altNavSelectedVal != 'currentPage') 
     { 
      $('#altNav option[value="currentPage"]').attr('selected', 'selected'); 
      location.href = altNavSelectedVal; 
     } 
    }); 
}); 

다음 페이지로 이동하기 전에 값 currentPage과 함께 옵션으로 ID altNav로 선택 상자를 재설정하는 데 사용.

이것은 브라우저가 이전 값을 캐싱하지 못하도록하기위한 것입니다. 예를 들어, 정보 페이지에서 서비스로 변경하면 서비스 페이지로 이동합니다. 브라우저의 뒤로 버튼을 누르면 정보 페이지로 돌아가지만 페이지가 변경되기 바로 전에 서비스로 변경되었으므로 활성 선택이 서비스로 유지됩니다.

아래 HTML 코드는 다음과 같습니다. 또 다른 페이지 인 경우

<select id="altNav"> 
    <option value="/">Home</option> 
    <option value="/services">Services</option> 
    <option value="currentPage" selected="selected">Contact</option> 
    <option value="/about">About</option> 
    <option value="/news">News</option> 
</select> 

는 일반적으로 연락처 옵션은 /contact의 값을 가질 것이다, 그러나 각 페이지에 대해 다릅니다. 정상 값은 /services, , /about/news/이지만 해당 페이지 중 하나에있는 경우 해당 값은 currentPage으로 설정됩니다.

어쨌든 코드는 Windows 용 Chrome에서 작동하지만 iPad (및 iPhone)에서 테스트 할 때 뒤로 버튼을 누르면 항상 홈으로 돌아갑니다.

location.href = altNavSelectedVal; 줄을 주석 처리 할 때 예를 들어 뉴스 페이지에 있고 서비스를 선택하면 서비스를 선택한 후 뉴스로 다시 전환해야하지만 실제로 홈을 선택해야합니다. 왜 iOS에서만 그렇게 할 것인지 이해할 수 없습니다.

답변

0

내가 아이 패드/아이폰이없는하지만 당신은

$('#altNav').removeAttr('selected'); 

http://jsfiddle.net/un45t/

으로 선택한 구를 제거해야 할 수도 있습니다
관련 문제