簡體   English   中英

重置選擇框不適用於iPad,但適用於Windows上的Chrome

[英]Resetting a select box not working on iPad, but works on Chrome on Windows

這是我現在正在使用的Javascript代碼。

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

它用於在導航到下一頁之前將ID為altNav的選擇框重置為值為currentPage的選項。

這是為了防止瀏覽器緩存其先前的值。 例如,如果我在“關於”頁面上並將其更改為“服務”,它將帶我進入“服務”頁面。 如果單擊瀏覽器后退按鈕,它將返回到“關於”頁面,但其活動選擇是“服務”,因為它在更改頁面之前已更改為“服務”。

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 ,但每個頁面都不同。 對於Home, /services/contact/about/news ,正常值是/ ,但是當在這些頁面之一上時,該選項的值設置為currentPage

無論如何,該代碼可以像在Windows版Chrome瀏覽器上那樣正常工作,但是當我在iPad(可能還有iPhone)上進行測試時,按下“后退”按鈕時,它始終會返回“首頁”。

當我注釋掉該行的location.href = altNavSelectedVal; 例如,如果我在“新聞”頁面上並選擇“服務”,則應該在選擇“服務”后切換回“新聞”,但實際上是選擇“主頁”。 我不明白為什么只能在iOS上執行此操作。

我沒有ipad / iphone,但您可能需要使用

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

http://jsfiddle.net/un45t/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM