如果用户允许来自中国,我希望隐藏javascript文件(<script src=" file here " >
)。
我该怎么做?
答案 0 :(得分:1)
您可以尝试使用geolocation service,但考虑到您可以通过在其他地方使用代理(例如美国的黑客机器)或通过欺骗请求看起来像来自给定位置的请求来打败它最后你不是很好。
答案 1 :(得分:1)
我是中国人,我保留所有抗议权利。 :)
实际上你有几个选择,你可以做前端或后端。
前端解决方案
使用HTML5 Geolocation
确定当前用户的经度和纬度,并检查它是否在中国境内(不要忘记包含台湾)。缺点是只支持现代浏览器,您应该设置计划B.
//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 to location
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>';
}