2015-01-08 72 views
-1

我目前正在拆分網站,因此英文版本位於子域en上。法文版本駐留在www上。如何將當前路徑名添加到具有不同url的href中?

在做這個之前,我有一個下拉菜單,選擇當前的語言,通過在URL後加上語言代碼,點擊'English'將在.com後加上/ en /並點擊'French'將加入/ fr /目前如果用戶選擇在產品頁面上更改語言,它將保持在同一頁面上。

我想這樣做,而不是使用當前的URL和修改/ en/to/fr /,反之亦然,它會將當前文件路徑添加到錨標記上的href中的url結尾。

<li> 
    <a onclick="$('input[name=\'language_code\']').attr('value', 'en'); $('#language_form').submit();" href="javascript:;"> 
     <img alt="English" src="http://en.domain.com/filepath/gb.png"> English  </a> 
</li> 

<li> 
    <a href="http://www.domain.com/fr/" id="addURLlang"> 
     <img alt="français" src="http://en.domain.com/filepath/fr.png"> français  </a> 
</li> 

以上是我目前的情況,但這只是將用戶帶到法國的主頁。我試着寫一個腳本來追加文件路徑的URL,但這不起作用,見下圖:

<script> 
jQuery(document).ready(function(){ 
    jQuery('#addURLlang').attr('pathname'); 
}); 
</script> 

我不知道是否有幫助,但對一個URL的例子en.domain .com/en/c/62/lenfance /如果選擇法語我希望進入www.domain.com/fr/c/62/lenfance/ - 我想採用/ c/62/lenfance /並將其附加到錨定標記中的href中

任何幫助將被大量讚賞!

謝謝,克里斯

+0

'的jQuery( '#addURLlang') .attr('pathname');'在使用時會將'undefined'打印到控制檯。帶有一個參數的'.attr()'會得到**屬性路徑名**的值,如果它設置爲這樣的話:'' – Qwerty

+0

感謝Qwerty的回覆,我會把什麼放在路徑名中的'something'? –

回答

0

此過程中向您介紹如何變老href,改變它,並放回。你現在可以做任何你需要的替換。

var element = $('#addURLlang'); 
var newUrl = $(element).attr('href') + 'c/62/lenfance/'; 

$(element).attr('href', newUrl); 

您可能需要使用.replace()和這樣既改變「www.domain.com」玩弄於「en.domain.com」和附加的URL。

要改變www.en.,反之亦然,你可以使用類似這樣

'http://www.domain.com'.replace(/(http:\/\/)?www\./, '$1en.'); 
'http://en.domain.comm'.replace(/(http:\/\/)?en\./, '$1www.'); 

獲取當前瀏覽器的網址(URL)做到這一點

var currentUrl = window.location.href; 
+0

非常感謝此..只需一個查詢是否有可能從當前網址獲取newUrl,因爲這可以動態地工作,我的想法是用戶可以將當前頁面從英語翻譯成法語,反之亦然 –

+0

您的意思是來自瀏覽器地址還是來自元素的值?是的,可以從任何地方獲取價值。 – Qwerty

+0

從瀏覽器地址我的意思是它動態工作,這就是我想要使用$(位置)。attr('pathname')做的,我在這裏找到它:[link](http://tech-blog.maddyzone.com/javascript/get-current-url-javascript-jquery) –

相關問題