在javascript中使用域替换的URL

时间:2013-05-02 15:05:06

标签: javascript html multilingual

我们有一个网站www.domain.com,我们也希望以fr.domain.com,jp.domain.com等其他语言发布。每个语言子域名将是一个单独管理的网站,它是不是真正的多语言系统。但是我们希望能够在顶部有一个共同的代码块,它可以在不同语言域的同一页面之间进行链接。

具体来说,我希望在这里有一个语言链接链接如下:
法语|日本

现在,假设用户位于英文网站上www.domain.com/a/b/c.html

我希望顶部的语言链接自动写为

<a href='http://fr.domain.com/a/b/c.html'>French</a>|
<a href='http://jp.domain.com/a/b/c.html'>Japanes</a>|
...etc... 

这很容易使用服务器端技术,但我需要它可以完全用HTML和/或Javascript(即一小部分HTML和/或Javascript,可以通过richtext编辑器插入内容管理系统)。

感谢您的任何建议!

2 个答案:

答案 0 :(得分:1)

获取当前位置

document.location.href

注入正确的语言

function makeLink(lang) {
    return document.location.href.replace(document.location.hostname, lang + "." + document.location.hostname)
}

...

var fr_link = makeLink("fr"); // French link

将该字符串用于您的链接。

JS小提琴 http://jsfiddle.net/CvBK4/

这足以让你完成余下的工作。

答案 1 :(得分:1)

当我正确理解时,您希望将页面上的链接的href更改为相同的位置,但将URL更改为不同的主机。

我会在javascript

中这样做
var lang = 'de'
var list = document.querySelectorAll('a');
for (k in list) {
 if (list[k].href!==undefined) {
  list[k].href = list[k].href.replace(/^(http[s]?:\/\/)([^.]*)(.*)$/,'$1'+lang+'$3');
 }
}