如果用户来自特定位置,则隐藏javascript
我希望一个javascript文件(如果用户来自特定位置,则隐藏javascript,javascript,php,Javascript,Php,我希望一个javascript文件()被隐藏,如果一个用户说他来自中国 我该怎么做呢?你可以尝试使用代理,但考虑到你可以通过在其他地方使用代理(如美国被黑客攻击的机器)或通过欺骗请求,使其看起来像来自给定位置,最终可能对你没有多大好处。我是中国人,我保留所有抗议的权利。:) 实际上你有几个选择,你可以在前端或后端做 前端解决方案 使用HTML5地理定位确定当前用户的经纬度,并检查其是否在中国境内(不要忘记包含台湾)。缺点是只支持现代浏览器,您可能应该设置PlanB //jQuery, ip-ap
)被隐藏,如果一个用户说他来自中国
我该怎么做呢?你可以尝试使用代理,但考虑到你可以通过在其他地方使用代理(如美国被黑客攻击的机器)或通过欺骗请求,使其看起来像来自给定位置,最终可能对你没有多大好处。我是中国人,我保留所有抗议的权利。:) 实际上你有几个选择,你可以在前端或后端做 前端解决方案 使用
HTML5地理定位
确定当前用户的经纬度,并检查其是否在中国境内(不要忘记包含台湾)。缺点是只支持现代浏览器,您可能应该设置PlanB
//jQuery, ip-api is a RESTful service, do it in front-end
$.getJSON('http://ip-api.com/json/?callback=?', function(response){
alert(response.country);
if(response.country === "China"){
$.getScript("script_for_Chinese.js");
}
});
后端解决方案
IP到位置RESTful服务)
Accept Language
部分包含类似zh CN
或zh TW
的字符串,请检查HTTP头。这也可能伤害到在其他国家使用中文的人IP-to-location
后端解决方案。唯一可行的方法是基于http头
//PHP, if the client accept Chinese, assume he is from China
if(preg_match('/(zh-CN|zh-TW|zh)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'])){
echo '<script src="script_for_Chinese.js" type="text/javascript"></script>';
}
//PHP,如果客户接受中文,则假设他来自中国
if(preg_match('/(zh-CN | zh-TW | zh)/i',$_服务器['HTTP_-ACCEPT_-LANGUAGE'])){
回声';
}
这是种族歧视,互联网上是不允许的。哈哈,笑了我一笑,但我现在真的需要解决这个问题:)有什么帮助吗?安装一些标准的geoip数据库?(maxmind很常见),只是不输出它?你需要在你的服务器上这样做。有geoIP服务可以猜测用户来自哪里,从那里开始,然后创建某种PHP代码,如果用户不是来自中国,则只包含该文件。你能给我一个更具体的代码吗,我是这个领域的noob,我不知道如何整合它。@Joel我添加了一个例子,感谢您的帮助,但它需要一个IP,因为没有那么多人提供正确的语言信息…@Joel如果您坚持使用IP解决方案,在前端使用它可能会更好,考虑到这一点,差别不大,您不想为服务器添加额外的负载。但是对于特定的脚本加载,会有可感知的延迟。我更新了这个例子。嗨,非常感谢你的时间,你能提醒或回应一些东西吗,这样我就可以看到脚本工作了?我的意思是,不要为中国嵌入脚本,试着回应这个国家