2015-01-08 33 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) –

相关问题