【问题标题】:Get country code using javascript [duplicate]使用javascript获取国家代码[重复]
【发布时间】:2016-06-30 04:24:19
【问题描述】:

我不知道如何从访问我网页的访问者那里获取国家/地区代码。我见过很多其他的例子,但没有一个使用纯 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 地址到 ipinfo.io

不幸的是,l2.io.js 目前除了 ip 没有返回任何东西。

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

【问题讨论】:

    标签: javascript jquery html sample ip-geolocation


    【解决方案1】:

    根据网站上的文档,您应该可以使用 ipinfo 检索国家代码。尝试使用 $.getJSON 而不是 $.get

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

    【讨论】:

    • 我一定不懂javascript。我在我当前的 $.get 下准确地添加了它。我需要包含一个 json .js 吗?我需要添加任何代码中断或;'s吗?也许这是可行的,那么我怎样才能将 data.country 变成 javascript 中的变量?并将 document.write(variable);实际工作?对不起,我很迷茫和困惑。
    • 把当前的$.get去掉,换成我上面的代码,如果不行,控制台会报错吗?
    • 我实际上是从 .html 文件和记事本中运行所有这些,所以我不确定我是否可以读取控制台或看到它。对不起!我还用你的 $.get 替换了我当前的 $.get 并尝试执行 document.write(data.country) 和 document.write(data.country.text()) 仍然没有。
    • 在页面任意位置右击,点击“Inspect Element”,然后会出现一个名为Console的选项卡。这个标签里有红色的东西吗? developer.chrome.com/devtools/docs/console
    • Uncaught ReferenceError: $ is not defined - 顺便说一句谢谢我不知道console.log实际上是浏览器调试控制台。我将尝试添加 jquery 2.2 和 json 库或其他东西
    【解决方案2】:

    我使用 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);
        });
    });
    

    注意:记得导入插件脚本如下:

    &lt;script src="http://www.geoplugin.net/javascript.gp" type="text/javascript"&gt;&lt;/script&gt;

    【讨论】:

    • 有时会失败,我使用 VPN - 指向美国并尝试了上述 API,它返回了 JAPAN。 ipinfo.io 和其他人说它是美国的,我发现 ip2c.org - 更可靠且免费
    猜你喜欢
    • 2020-12-28
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    相关资源
    最近更新 更多