1

我需要获取当前标题并在 5 秒后重定向到:

http://mysite.org/redirect1.php?title=TITLE PAGE WHIT JAVASCRIPT

这是我的代码

if(country=="MX"){
    url="http://mysite.org/redirect1.php?title=TITLE PAGE";
} else if (country == "ES") {
    url="http://mysite.org/redirect2.php?title=TITLE PAGE";
} else if (country == "PE") {
    url="http://mysite.org/redirect1.php?title=TITLE PAGE";
} else if (country == "AR") {
    url="http://mysite.org/redirect3.php?title=TITLE PAGE";
} else if (country == "PY") {
    url="http://mysite.org/redirect4.php?title=TITLE PAGE";
} else if (country == "CO") {
    url="http://mysite.org/redirect1.php?title=TITLE PAGE";
} else if (country == "CL") {
    url="http://mysite.org/redirect1.php?title=TITLE PAGE";
} else {
    url="http://mysite.org/blank.htm";
}
setTimeout("location.href = url;",5000);

我认为是这样的:

var title = document.title;
    if(country=="MX"){
        url="http://mysite.org/redirect1.php?title"+title;
    }
4

4 回答 4

3

让我们稍微重构一下......

var countryMap = {
  MX: 'redirect1.php',
  PE: 'redirect2.php',
  /* etc. */
};

setTimeout(function () {
    window.location = 'http://mysite.org/' + countryMap[country] + '?title=' + encodeURIComponent(document.title);
}, 5000);

setTimeout你只需要设置 5 秒的延迟。 document.title获取当前标题。这countryMap是一个对象,其中包含您希望链接到的所有文档的映射。

于 2013-07-30T21:05:11.377 回答
1

像这样重定向

window.setTimeout(function() {
   window.location = "http://mysite.org/redirect1.php?title"+title;
}, 5000);
于 2013-07-30T21:07:36.450 回答
1

我的比使用对象表示法更“硬编码”。

var url = "http://mysite.org/@REDIRECT@";
var blank;
var timeout = 5000;
switch (country) {
    case "MX":
        url = url.replace("@REDIRECT@", "redirect1.php");
        break;
    case "ES":
        url = url.replace("@REDIRECT@", "redirect2.php");
        break;
    case "PE":
        url = url.replace("@REDIRECT@", "redirect1.php");
        break;
    case "AR": 
        url = url.replace("@REDIRECT@", "redirect3.php");
        break;
    case "PY":
        url = url.replace("@REDIRECT@", "redirect4.php");
        break;
    case "CO":
        url = url.replace("@REDIRECT@", "redirect1.php");
        break;
    case "CL":
        url = url.replace("@REDIRECT@", "redirect1.php");
        break;  
    default:
        url = url.replace("@REDIRECT@", "blank.htm");
        blank = true;
}

if (!blank) {
    url += "?title=" + encodeURIComponent(document.title);
}

setTimeout(function() {
    window.location.href = url;
}, timeout);
于 2013-07-30T21:11:57.757 回答
1

尝试使用此方法setTimeout等待 5 秒,然后window.location设置新位置。encodeURIComponent用于“清理”或编码 URI 参数(在本例中为标题)。

var delay = 5000; // 5 seconds in milliseconds
setTimeout(function() {
    window.location = 'http://mysite.org/redirect1.php?title=' + encodeURIComponent(document.title); 
}, delay);
于 2013-07-30T21:02:56.567 回答