2009-04-20 50 views

回答

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; 
} 
0

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

0

你想在服务器端执行此操作吗?

如果浏览器不支持JavaScript(或已将其关闭),那么它们不太可能支持Java小程序。

3

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

5

在yourform你可以把这样的代码:

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

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

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

我喜欢这个主意...但它是一个跨浏览器的解决方案?这似乎是IE6会喜欢搞砸的东西。 – 2010-06-22 14:53:49

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>"; 
?> 

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

相关问题