如何使用Java代码检查客户端浏览器中是否启用了JavaScript

时间:2009-04-20 13:31:33

标签: java javascript

任何人都可以帮我尝试使用Java代码检查客户端浏览器中是否启用了JavaScript。

6 个答案:

答案 0 :(得分:10)

假设您正在编写Java Web应用程序,我成功使用的一种技术是访问第一个页面 - 通常是登录表单 - 在页面加载时编写会话cookie。然后使用表单提交的Java代码来检查该cookie是否存在。

在客户端:

<script type="text/javascript">
  function createCookie(name, value, days) {
    var expires = "";
    if (days) {
      var date = new Date();
      date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
      expires = "; expires=" + date.toGMTString();
    }
    var cookie = name + "=" + value + expires + "; path=" + "/";
    document.cookie = cookie;
  }
  createCookie("JavaScriptEnabledCheck", 1, 0);
</script>

在服务器上:

/**
 * Returns <code>true</code> if the session cookie set by the login form
 * is not present.
 * 
 * @param request The HTTP request being processed
 * @return <code>true</code> if JavaScript is disabled, otherwise <code>false</code>
 */
private boolean isJavaScriptDisabled(HttpServletRequest request)
{
  boolean isJavaScriptDisabled = true;
  Cookie[] cookies = request.getCookies();

  if (cookies != null)
  {
    for (int i = 0; i < cookies.length; i++)
    {
      if ("JavaScriptEnabledCheck".equalsIgnoreCase(cookies[i].getName()))
      {
        isJavaScriptDisabled = false;
        break;
      }
    }
  }

  return isJavaScriptDisabled;
}

答案 1 :(得分:5)

在你的形式中你可以输入这样的代码:

<noscript>
  <input type="hidden" name="JavaScript" value="false" />
</noscript>

只有在浏览器关闭脚本时才应提交参数。在Java应用程序中,您可以像这样检查它:

boolean javaScript = request.getParameter("JavaScript") == null;

答案 2 :(得分:3)

如果执行表单提交,您可以在表单中放入一个隐藏的输入,并使用javascript(来自OnSubmit)填写其值,并在服务器端检查它。

答案 3 :(得分:0)

一个简单的事情是从页面回调,例如AJAX调用。我认为没有任何其他方法可以确定这一点,至少不是普遍的。

答案 4 :(得分:0)

您是尝试在服务器端执行此操作还是在applet中的客户端上执行此操作?

如果浏览器不支持javascript(或关闭它),那么他们很可能不会支持Java applet。

答案 5 :(得分:0)

如果您有PHP支持,只需复制并粘贴以下代码即可。

<noscript> 
  <input type="hidden" name="JavaScript" value="false" /> 
</noscript> 
/*This code is developed by Lankeshwer(nick name only) and can be used as open source by anyone*/
<?PHP
if($_POST['JavaScript']!='false'){
 echo "<run your javascript code here>";} //replace this line with your actual javascript code
else
 echo "<html><head><meta http-equiv="refresh" content="0;url=www.kharida.com"></head</html>";
?>

祝你好运,不要忘记让你的代码打开