2009-01-02 64 views
2

我有一個Joomla網站,它使用mod_rewrite來創建漂亮的網址。基地標籤搞亂書籤鏈接

http://www.example.com/resources/newsletter 

但是,這造成了一個問題。包括像這樣的圖片:src="images/pic.jpg",它會再尋找一個文件中:

http://www.example.com/resources/newsletter/images/pic.jpg 

...這顯然不存在。要解決這個問題,我在head部分包括一個<base>標籤:

<base href="http://www.example.com/" /> 

...這工作得很好,直到我試圖做一個鏈接到同一頁面上的定位點(書籤):

<!-- on http://www.example.com/resources/newsletter --> 
<a href="#footer">go to the footer</a> 

<!-- clicking that link takes you to http://www.example.com/#footer --> 

將鏈接更改爲<a href="resources/newsletter/#footer">不可行,因爲在編輯頁面時我不一定知道頁面的URL。有沒有辦法讓一些鏈接忽略<base>指令?

雖然我真的更喜歡直接的HTML解決方案,但我已經在這個網站上使用jQuery,所以如果卡住了,我可能會選擇這個選項。

回答

2

是否可以將src屬性更改爲/images/pic.jpg?這將達到你正在尋找的效果。

如果這是不可能的,這(未經測試)jQuery代碼應該爲你工作:

$('a[@href^="#"]').click(function() { 
    var hash = this.hash, el = $(hash), offset; 
    if(!el.size()) { 
    el = $("[@name=" + hash.slice(1) + "]"); 
    } 

    offset = el.offset(); 
    window.scroll(offset.left, offset.top); 
}); 
0

老問題,新的答案.. 試試這個:

$('a[href^="#"]').on('click', function (event) { 
    event.preventDefault(); 
    window.location.hash = $(this).attr('href'); 
});