在Javascript中生成我的网站的URL

时间:2014-03-12 11:51:46

标签: javascript redirect

我有这个功能负责为我所在的当前环境生成HTTP URL。当我在我的localhost上工作时,该函数返回如下内容:

http://localhost/mysite

在制作时,它应该只返回我的网站域名,如:

http://mywebsite.org

事实并非如此。这个功能部分工作,我不明白为什么。我使用此函数将AJAX表单提交到我的网站周围的PHP脚本,但是,当我尝试使用此函数将用户重定向到应该包含完整HTTP URL的特定位置时,它会将我发送到localhost URL。

这是我写的函数:

function generate_site_url()
{
    var domain = window.location.origin;
    if (domain.indexOf('localhost'))
    {
        return 'http://localhost/mysite/';
    }
    else
    {
        return 'http://mywebsite.org/';
    }
}

这是重定向功能导致错误的重定向问题:

function redirect(to, mode, delay, internal)
{
    mode     = (typeof mode === "undefined") ? 'instant' : 'header';
    delay    = (typeof delay === "undefined" || delay === null) ? 0 : delay;
    internal = (typeof internal === "undefined" || internal === true) ? true : false;

    if (to)
    {
        to = ((internal) ? generate_site_url() : '') + to;      
    }
    else
    {
        to = currentLocation(); 
    }

    setTimeout(function(){
        window.location = to;
    }, delay);
}

这是导致问题的redirect的示例用法:

redirect('admin/index', 'header', 3000);

上面的函数调用是将我发送到http://localhost/mysite/admin/index,即使我正在制作中并且我的域名案例应该适用。

它出了什么问题?我似乎无法弄明白。

1 个答案:

答案 0 :(得分:2)

更改

if (domain.indexOf('localhost'))

if (domain.indexOf('localhost') != -1)

或者

if (~domain.indexOf('localhost'))