【问题标题】:How to run javascript function only in one Country and OS?如何仅在一个国家和操作系统中运行 javascript 功能?
【发布时间】:2017-09-27 05:02:34
【问题描述】:

我见过类似的问题,如下所示。但它们都不适合我。请帮忙。 Find the three letter country code using HTML and Javascript

How to find the operating system version using JavaScript

【问题讨论】:

  • 浏览器和操作系统可以被欺骗。您只是想找出似乎已定义的属性和值吗?
  • 您是否尝试在 Blogger 博客上执行此操作?您使用的是自定义域还是 blogspot.com 类型的地址?
  • @prayag,博主或自定义域有什么简单的方法吗?

标签: javascript html function blogger


【解决方案1】:

浏览器采用了一些安全功能来阻止 JavaScript 在未经用户同意的情况下获取用户的位置。现在,您可以使用以下代码来获取用户的位置。它将打开一个提示窗口,让用户允许获取他/她的位置。

var recieveLocation = function(pos) {
    console.log(pos); // Latitude and Longitude Info 
}

navigator.geolocation.getCurrentPosition(recieveLocation);

上面的代码将返回用户的地理位置。您需要使用第三方服务对这些经度和纬度进行解码以获取国家/地区信息。

例如,查看谷歌地图地理编码服务 API:
https://developers.google.com/maps/documentation/javascript/examples/geocoding-simple

注意:大多数网络浏览器都需要 HTTPS 来运行代码。检查控制台以获取错误消息。对于 Mozilla Firefox,它会说:

[弃用] getCurrentPosition() 和 watchPosition() 不再适用于不安全的来源。要使用此功能,您应该考虑将应用程序切换到安全源,例如 HTTPS。

您需要在域上安装 SSL 证书,以便浏览器可以信任网站以允许获取用户的地理位置。

【讨论】:

    【解决方案2】:

    navigator.language 字符串包含“县代码”。

    navigator.platform 字符串包含操作系统和计算机处理器类型。

    两者都可以被欺骗。

    另一种方法是使用 html form 询问用户他们目前居住在哪个“国家”或认同哪个“国家”。

    【讨论】:

    • navigator.language 不会返回国家代码。它只会返回系统的语言设置。
    • @NavneetSingh en-US 是“代码”而不是“国家”。请注意,“国家”可以有“领土”,可以而且确实超出“他们的边界”。目前,这里“国家”的定义是什么? “国家代码”还是法律上的原始国家?法人实体还是土地的原始人? OP 正在尝试实现什么? 确定使用javascript作为要求的一部分,网络节点在特定的陆地内并且正在使用特定的处理微芯片?在 SO 和 meta SO 中搜索“浏览器指纹”
    猜你喜欢
    • 2015-06-28
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    相关资源
    最近更新 更多