0

下面是我的代码,它可以很好地编辑链接以根据位置将用户发送到网站,但我想以两种方式扩展此代码:

$(window).load(function () {
    $.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) {
        var country = data.address.country;
        var urls = {
            'Australia': 'www.website.com.au',
            'New Zealand': 'www.website.co.nz'
        }
        var locstring = "/contact_us.html";
        var locstring2 = "/about_us.html";
        var cchUrl = 'www.website.com';
        if(urls[country]) {
            cchUrl = urls[country];
        }
        //alert(cchUrl);
        $("#global").attr('href', 'http://' + cchUrl + locstring);
        $("#global2").attr('href', 'http://' + cchUrl + locstring2);
    });
});

<a href="http://www.website.com/contact_us.html" id="global" target="_blank">Contact Us</a>

<a href="http://www.website.com/about_us.html" id="global2" target="_blank">About Us</a>
  1. 如您所见,我必须设置两个变量(locstring,locstring2)和两个 id(global,global2)才能将用户发送到两个不同的位置,是否可以使用 id global 来更改域但它没有不管域之后是什么路径。我想简化代码,以便 www.thiswillchange.com/thiswontchange 使用一个 ID,而不是为不同的链接设置多个 ID 和变量。

  2. 作为一个不同的项目,我可以使用此代码(使用从第 1 点开始的更改)来创建“页面加载”,因此如果用户例如冲浪到页面 www.website.co.nz/contact_us.html,它会检测到他们来自澳大利亚并将他们发送到 www.website.com.au/contact_us.html 网站,反之亦然,或者这需要完全不同的方法。

请记住,当我添加更多站点时,我可能希望将来在列表中添加更多国家/地区。

编辑:也许我应该详细说明一下链接是国际斜杠页面上的文本,没有菜单,我只是使用全局重定向来更改链接域,以将用户发送到正确的网站以获得该位置,然后页面的路径。

4

2 回答 2

1

我不知道这对您是否可行,但您可以从 javascript 构建菜单,而不是编写 html 然后更改它。这样,您还可以轻松添加更多菜单项,而无需更改 html 并引入更多全局变量。

$(window).load(function () {
    $.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) {

        var country = data.address.country;
        var urls = {
            'Australia': 'www.website.com.au',
            'New Zealand': 'www.website.co.nz'
        };

        var menu = {
            'Contact Us'  : '/contact_us.html',
            'About Us'    : '/about_us.html'
        };

        var cchUrl = 'www.website.com';
        if (urls[country]) {
            cchUrl = urls[country];
        }
        for(name in menu){
            $('#menu').append($('<a/>',{'text':name,'href':'http://'+cchUrl+'/'+menu[name]}));
        }

    });
});

<div id="menu"></div>

下一次尝试:
这里所有的链接都得到相同的类。然后他们每个人的href中的域将被cchUrl替换。

$(window).load(function () {
    $.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) {
        var country = data.address.country;
        var urls = {
            'Australia': 'www.website.com.au',
            'New Zealand': 'www.website.co.nz'
        }

        var cchUrl = 'www.website.com';
        if(urls[country]) {
            cchUrl = urls[country];
        }

        $('.global').each(function(){
            var href = $(this).attr('href');
            $(this).attr('href', href.replace(/http:\/\/.*?\//,'http://'+cchUrl+'/'));
        });
    });
});

<a href="http://www.website.com/contact_us.html" class="global" target="_blank">Contact Us</a>
<a href="http://www.website.com/about_us.html" class="global" target="_blank">About Us</a>
于 2013-04-23T22:58:43.033 回答
0
function update(id, domain) {
    var old = $(id).attr('href')
    $(id).attr('href', old.replace(/http:\/\/.+?\/(.*?)/, 'http://'+domain+'/$1'))
}
update("#global", cchUrl)
于 2013-04-24T00:11:39.743 回答