2012-04-30 135 views
0

我想在新選項卡中打開鏈接並轉到該鏈接中的特定div。這個鏈接是:在新選項卡中打開鏈接並轉到特定格

http://paper.li/f-1333760510

,我想去到div #paper-window上點擊鏈接。這是我曾嘗試:

1.

<a href="http://paper.li/f-1333760510#paper-window" target="_blank" /> 
<a href="#" onclick="load-link(); return false" /> 

function load-link() { 
    var w = window.open("http://paper.li/f-1333760510"); 
    w.location.href = "http://paper.li/f-1333760510#paper-window"; 
} 

回答

1

鏈接看起來不錯...但你亂放與元素的ID的location.hash。 ..

OLD: 你的錨標記是絕對OK:

<a href="http://paper.li/f-1333760510#paper-window" target="_blank">open me</a> 
<a name="paper-window"></a> 

原因URL的#something部分是一個跳點到該頁面上有一定的錨,而不是指向一個id

UPDATE(關於你的評論,感謝大家:)) HTML5規範的Navigating to a fragment identifier確實說既會工作......當順序是先尋找一個ID,之後與屬性名稱錨(雖然在HTML5棄用向後兼容)

那麼這將意味着開放http://www.example.com#foo將導致搜索:

// check for an element with an id matching "foo" 
<div id="foo"></div> 

// if no element was found check for an anchor with that name (also backward compatibility) 
<a name="foo"></a> 

// compare location.hash with "top" 
// would jump to the top of the page if it matches 
+0

有沒有辦法去一個div元素與ID?...該鏈接是外部的,不能改變。順便說一句,當我在瀏覽器中放置鏈接'http:// paper.li/f-1333760510#paper-window'時,它將跳轉到所需的div,但僅在加載頁面一次之後。 – rubyprince

+0

以及這可以解決,但只有在外部頁面閱讀哈希和內部工作...我只是粘貼該網址,它並沒有跳轉到所需的DIV ...我認爲這發生,因爲瀏覽器記得 –

+0

嗯...是的,你是對的...我剛剛檢查並意識到跳躍只發生在Fire-Fox,而不是像Chrome – rubyprince

相關問題