2016-03-14 856 views
2

我无法弄清楚如何从访问者的国家代码获取到我的网页。我见过很多其他的例子,但没有使用纯JavaScript。这里是我当前的代码:使用javascript获取国家或地区代码

<!DOCTYPE html> 
<html lang="en-US"> 
<head> 
</head> 
<body> 
    <script type="text/javascript"> 
     var userip; 
    </script> 
    <script type="text/javascript" src="https://l2.io/ip.js?var=userip">  </script> 

    <script type="text/javascript"> 
     document.write("IP: ", userip); 

     $.get("http://ipinfo.io/"+userip.text(), function (response) { 
      reg.text("country code here" + response.country); 
     }, "jsonp"); 
    </script> 
</body> 
</html> 

我使用jQuery的$.get方法得到JSONP请求用户的IP addrress到ipinfo.io

不幸的是l2.io.js此时不会返回任何其他的ip。

如果任何人可以提供帮助或有任何示例,请链接所有需要的相关JavaScript库。谢谢。

回答

5

根据网站上的文档,你应该能够通过ipinfo检索国家代码。尝试使用$ .getJSON而不是$ .get

var country_code = null; 
$.getJSON('http://ipinfo.io/' + userip, function(data){ 
    country_code = data.country; 
    alert(country_code); 
}); 
+0

我不能理解JavaScript的。我在我目前的$ .get下正好加了。我是否需要包含json .js?我是否需要添加任何代码中断或者这个?也许这是工作,那么我怎么能把data.country变成一个JavaScript内的变量?并将document.write(variable);实际上工作?我很遗憾和困惑。 – 702cs

+0

删除当前的$ .get并用上面的代码替换它,如果它不起作用,控制台是否会抛出任何错误? – Xposedbones

+0

我真的从.html文件和记事本中运行所有这些,所以我不确定是否可以读取控制台或看到它。抱歉!我也用你的代替了我当前的$ .get,并试图做一个document.write(data.country)和document.write(data.country.text())。 – 702cs

0

我已经使用下面的代码使用jQuery和它的工作对我很好。我得到了country_code,country_name等。

jQuery(document).ready(function($) { 
    jQuery.getScript('http://www.geoplugin.net/javascript.gp', function() 
    { 
     var country = geoplugin_countryName(); 
     alert(country); 
     var code = geoplugin_countryCode(); 
     alert(code); 
     console.log("Your location is: " + country + ", " + zone + ", " + district); 
    }); 
}); 

注意:千万记得要导入下面的插件脚本:

<script src="http://www.geoplugin.net/javascript.gp" type="text/javascript"></script>

相关问题