我正在使用带有脚本的php文件,根据用户位置将1个网址重定向到各个网址,但它会卡住。根本不会重定向。事情是 - 它一直工作到昨天......
<!DOCTYPE html>
<html>
<head>
<script language="Javascript" src="http://gd.geobytes.com/gd?after=-1&variables=GeobytesLocationCode,GeobytesCode,GeobytesInternet">
</script>
<script>
function redirect(){
var sub= getSub();
var country= sGeobytesInternet;
if(country == "BE"){window.location = "http://sitelink1.com/?subid="+sub}
else if(country == "FR"){window.location = "http://sitelink2.com/?subid="+sub}
else if(country == "DE"){window.location = "http://sitelink3.com/?subid="+sub}
else if(country == "AT"){window.location = "http://sitelink4.com/?subid="+sub}
else if(country == "CH"){window.location = "http://sitelink5.com/?subid="+sub}
else if(country == "US"){window.location = "http://sitelink6.com/?subid="+sub}
else if(country == "PT"){window.location = "http://sitelink7.com/?subid="+sub}
else if(country == "BG"){window.location = "http://sitelink8.com/?subid="+sub}
else if(country == "HU"){window.location = "http://sitelink9.com/?subid="+sub}
else if(country == "PL"){window.location = "http://sitelink10.com/?subid="+sub}
else if(country == "SK"){window.location = "http://sitelink11.com/?subid="+sub}
else if(country == "IT"){window.location = "http://sitelink12.com/?subid="+sub}
else {window.location = ""+sub}
}
function getSub(){
regex = /subid=([\w-]*)/;
url =window.location.href;
if(-1 != url.indexOf("subid")){
var id = url.match(regex)[1];
return id;
}else{
return '';
}
}
redirect()
</script>
</head>
<body>
</body>
</html>
答案 0 :(得分:0)
我认为可以改进您的代码。我建议你改变geoIp提供者。让我们看看我的例子:
<script src="https://code.jquery.com/jquery-2.2.3.min.js"></script>
<script type="text/javascript">
$(function() {
$.getJSON('http://ipinfo.io/json', function(data) {
/*
{
"ip": "46.23.xxx.xxx",
"hostname": "host.example.com",
"city": "Baku",
"region": "Baku City",
"country": "AZ",
"loc": "40.000,40.000",
}
*/
var
map,
countryCode = data.country,
getParameter;
/*
http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript?answertab=active#tab-top
*/
getParameter = function(name) {
var
regex,
results;
url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)");
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
map = {
"AZ": 'http://google.az',
"DE": 'http://google.de',
"FR": 'http://google.fr',
"PL": 'http://google.pl',
"IT": 'http://google.it',
"CH": 'http://google.ch',
"SK": 'http://google.sk',
"AT": 'http://google.at',
"US": 'http://google.us',
"BE": 'http://google.be',
"PT": 'http://google.pt',
"BG": 'http://google.bg',
"HU": 'http://google.hu',
};
if (map[countryCode] !== 'undefined') {
location.href = map[countryCode] + '?subid=' + getParameter('subid');
}
else {
location.href = 'http://google.com' + '?subid=' + getParameter('subid');
}
});
});
</script>
答案 1 :(得分:0)
尝试在您的脚本中添加分号。
<!DOCTYPE html>
<html>
<head>
<script language="Javascript" src="http://gd.geobytes.com/gd?after=-1&variables=GeobytesLocationCode,GeobytesCode,GeobytesInternet">
</script>
<script>
function redirect(){
var sub= getSub();
var country= sGeobytesInternet;
if(country == "BE"){window.location = "http://sitelink1.com/?subid="+sub;}
else if(country == "FR"){window.location = "http://sitelink2.com/?subid="+sub;}
else if(country == "DE"){window.location = "http://sitelink3.com/?subid="+sub;}
else if(country == "AT"){window.location = "http://sitelink4.com/?subid="+sub;}
else if(country == "CH"){window.location = "http://sitelink5.com/?subid="+sub;}
else if(country == "US"){window.location = "http://sitelink6.com/?subid="+sub;}
else if(country == "PT"){window.location = "http://sitelink7.com/?subid="+sub;}
else if(country == "BG"){window.location = "http://sitelink8.com/?subid="+sub;}
else if(country == "HU"){window.location = "http://sitelink9.com/?subid="+sub;}
else if(country == "PL"){window.location = "http://sitelink10.com/?subid="+sub;}
else if(country == "SK"){window.location = "http://sitelink11.com/?subid="+sub;}
else if(country == "IT"){window.location = "http://sitelink12.com/?subid="+sub;}
else {window.location = ""+sub;}
}
function getSub(){
regex = /subid=([\w-]*)/;
url =window.location.href;
if(-1 != url.indexOf("subid")){
var id = url.match(regex)[1];
return id;
}else{
return '';
}
}
redirect()
</script>
</head>
<body>
</body>
</html>