我很痛苦地意识到包含JSTL的JSP正在运行服务器端,而JavaScript运行在客户端。
我正在尝试检测用户是否正在访问来自中国的网站。我们已经在使用基于IP的Geolocation进行了Cookie,我可以使用以下JS访问该值:
<script>
XY.isChina = document.cookie.indexOf('GeoIPCookie=GEOIP_COUNTRY_CODE=CN') > -1;
</script>
(XY是我们已经浮出的现有JS结构。适用于全局的东西。)
在此之后,我现在有一个真或假的变量。我已经验证了我可以在其他JSP文件中访问这个JS变量,因为我在标题中写了它,这显然包含在每个页面中。
我现在真正想做的事情就是这样:
<c:if test="${not hideFacebookIcon && XY.isChina === false}" >
这不会起作用,因为那是一个JavaScript变量。
有没有人对我如何能够破解某个真假变量有任何想法,所以我可以使用它与上面类似?我对使用的方法并不挑剔,但我不能使用像jQuery这样的额外库或像AJAX这样的东西。
答案 0 :(得分:0)
在JSTL中执行此操作的方式如下:
<c:if test="${fn:indexOf(cookie.GeoIPCookie.value,'CN') > -1}">
//do stuff
</c:if>
然而,当一个网站落后于Akamai时,这不起作用,所以解决方案必须是纯粹的JavaScript