2012-11-27 45 views
0

我正在使用鏈接跳轉到頁面的內容部分。它工作正常;然而,在IE和Chrome中,跳轉後如果我按Tab鍵則返回。HTML:相同頁面錨定和使用Tab鍵

鏈接:<a href="#anchortext">Skip to Content</a>

內容位置<a id="anchortext" class='hidden'>Content</a>

任何想法?

+0

所以第二個選項卡應該在哪裏把你?如果沒有其他可聚焦元素,則第二個Tab會將您帶到鏈接。應該發生什麼呢? –

+0

Skip to Content帶你到 – user778930

回答

4

我懷疑它與頁面上現有html元素的標籤索引有關 - 點擊上面指定的那個錨點標籤會將您帶到相關部分,但按下標籤會將您帶到第一個可用的製表位(通常是鏈接或表單輸入項),它可以很容易地返回到頁面的頂部。

如果您刷新頁面並按一次標籤,您將被帶到頁面的第一個標籤索引已啓用元素 - 我猜這可能與您在原件中被採用的相同部分問題...

+0

的地方是的,在IE和Chrome中,當我移動到一個部分並按下標籤後,它將我帶到第一個標籤索引元素。但是,Firefox並非如此。任何修復?對於IE和Chrome? – user778930

0

這似乎是不同的處理在瀏覽器內部鏈接的問題,並且似乎陷入的行爲規範中沒有定義的類別,因此瀏覽器的依賴。

當你關注一個鏈接(通常情況下,用Tab鍵),並按下回車鍵進入鏈接,瀏覽器可能會或可能不保留焦點。您可以使用像:focus { background: yellow; }這樣的CSS規則查看行爲的差異。

如果保留了焦點(這有點不合邏輯,因爲焦點元素很可能不在視線範圍內),選項卡會將您帶到頁面上的下一個可調焦元素(按照標籤順序意義上的「下一個」 )。

如果丟失焦點,它可被視爲使聚焦到整個頁面(一個IE古怪),或作爲不具有焦點。無論採用哪種方式,點擊標籤都會將您帶到頁面上的第一個可聚焦元素(按照標籤順序)。

恐怕沒有什麼,你可以在頁面上做些什麼來改變這一點。它位於用戶和瀏覽器之間。

0

AFAIK有沒有這樣做,只使用HTML的方式。

所以,我使用jQuery做一個javascript腳本。 當用戶點擊跳轉項目時,我會查找下一個鏈接或特定元素中的下一個鏈接,並將重點放在它上面。 這解決了我在Chrome(> 25)和IE(> 7)方面的問題,當然Firefox做了正確解釋標籤操作的卓越工作。

$("#jumpToMenu").on("keydown", function(e) { 
    var keyCode = e.keyCode || e.which; 
    if(keyCode == 13) { 
     e.preventDefault(); 
     e.stopPropagation(); 
     $("#myMenuToJump").find('a:first').focus(); 
    } 
}).on("click", function(e) { 
    e.preventDefault(); 
    e.stopPropagation(); 
    $("#myMenuToJump").find('a:first').focus(); 
}); 

希望這有助於...