2012-02-02 54 views
0

在我的HTML,我目前使用下面的BASE標記來簡化文件管理:「回到頂端」按鈕,BASE標籤

<base href="../" target="_blank" /> 

我願意加入「頁面頂部」按鈕在頁面的底部。下面的代碼行不起作用,可能是因爲這個代碼庫只有一個目錄。

<a id="back2top" class="button" href="#">Back to the top</a> 

所以,我想這不是(其中在href指向網頁本身):

<a id="back2top" class="button" href="fr/1_calendar.html">Back to the top</a> 

然而,當我點擊按鈕,加油車做兩件事情:
- 它去到頁面頂部(我想要的)
- 並打開一個新窗口(在IE和Chrome上測試)。

有沒有一種方法,我可以:
- 無論是覆蓋基礎,這樣的href =「#」的作品
- 或防止第二窗口的打開

+0

看起來''在這裏做得比弊大於利。你不能擺脫它嗎?無論如何,新窗口問題可以通過使用「頁面頂部」鏈接中的'target = _top'來解決,而無需使用Javascript。 – 2012-02-02 19:31:20

+0

這是一個有趣的使用基地的利弊討論:http://stackoverflow.com/questions/1889076/is-it-recommended-to-use-the-base-html-tag – skybondsor 2012-02-02 19:31:31

+0

感謝這些有趣的評論。我會試圖擺脫基地。但在我的情況下,這是一個很好的方法來保持一個共同的「圖像」目錄以及包含網頁本身的多個目錄:「website_en」,「website_fr」等。 – tos 2012-02-03 08:50:09

回答

0

如果使用<base href=...>,則按照定義,它會影響所有相對URL。它不能被覆蓋;阻止它影響URL的唯一方法是使用相對URL。

因此,如果使用<base href=...>,HTML中建立到文檔起始處的鏈接的唯一方法是使用指定文檔本身的絕對(完整)URL的文本。

另一方面,by the spechrefbase標記必須是絕對URL。因此,無論您的案例中的標籤是否被歸類爲無證錯誤處理。

+0

我明白了。關於相對的href,我知道它,但我正在一個受控的環境中運行。迷你網站是Android應用程序的幫助部分。爲了穩定性,我會盡量找到更好的方法。 – tos 2012-02-03 08:47:00

0

如果你可以使用JavaScript這樣的工作:

function goToTop(){ 
    window.scrollTo(0,0) 
    return false; //prevent page from reloading 
} 

你的HTML可能看起來像:

<a href="javascript:goToTop()">Back to the top</a> 

或:

<a onclick="javascript:goToTop()">Back to the top</a> 
+0

我目前沒有使用JavaScript。並且不願意給我們。 – tos 2012-02-03 08:31:13