Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript检测不再工作_Javascript_Wicket - Fatal编程技术网

Javascript检测不再工作

Javascript检测不再工作,javascript,wicket,Javascript,Wicket,这个周末之后,我的Wicket应用程序再也无法正确检测javascript了。它在我的webhoster、本地机器上不起作用,我还在另一台计算机上测试了它 我的检测脚本: WebClientInfo clientInfo = (WebClientInfo)WebSession.get().getClientInfo(); if(!clientInfo.getProperties().isJavaEnabled()){ System.out.println("not ena

这个周末之后,我的Wicket应用程序再也无法正确检测javascript了。它在我的webhoster、本地机器上不起作用,我还在另一台计算机上测试了它

我的检测脚本:

WebClientInfo clientInfo = (WebClientInfo)WebSession.get().getClientInfo();
    if(!clientInfo.getProperties().isJavaEnabled()){
        System.out.println("not enabled!");
        WebSession.get().setClientInfo(null);
    }
另外,在应用程序类中:

getRequestCycleSettings().setGatherExtendedBrowserInfo(true);
我还从头创建了一个wicket应用程序,同样的结果,没有javascript检测

写这篇文章时,我在Internet Explorer中进行了检查。与IE 8+9配合使用效果良好。不适用于FF 11.0。Wicket版本是1.5.5

有人能证实这种行为吗?可能是吉拉·沃西


更新:我找到了这种行为的原因。isJavaEnabled检查是否启用了Java而不是Javascript。Firefox在4月2日悄悄地阻止了Java插件,因此没有启用javaEnabled的属性集:。笨重。

很可能这根本不起作用,事实上这似乎是愚蠢的运气

查看的javadocs,它返回客户机的navigator.javaEnabled属性,该属性反映是否启用了Java,而不是JavaScript


爪哇!=JavaScript。

很可能这根本不起作用,事实上这似乎是愚蠢的运气

查看的javadocs,它返回客户机的navigator.javaEnabled属性,该属性反映是否启用了Java,而不是JavaScript


爪哇!=JavaScript。

另一种方法是使用“用户代理”字符串:

public boolean javascriptSupported() {
    WebRequest webRequest = (WebRequest) getRequest();
    String userAgent = webRequest.getHeader("User-Agent");
    if (userAgent == null || userAgent.startsWith("Googlebot")) {
        return false;
    }
    return true;
}
我已经用它来回退搜索引擎的AjaxLazyLoadPanel,尽管您需要在上面的用户代理列表中进行扩展


还有WebRequest.isAjax,它可能也很有用,因为它用于确定使用的重定向策略,从而确定不存在Javascript时Wicket的行为。

另一种方法是使用“用户代理”字符串:

public boolean javascriptSupported() {
    WebRequest webRequest = (WebRequest) getRequest();
    String userAgent = webRequest.getHeader("User-Agent");
    if (userAgent == null || userAgent.startsWith("Googlebot")) {
        return false;
    }
    return true;
}
我已经用它来回退搜索引擎的AjaxLazyLoadPanel,尽管您需要在上面的用户代理列表中进行扩展


还有WebRequest.isAjax,它可能也很有用,因为它用于确定使用的重定向策略,从而确定不存在Javascript时Wicket的行为。

自本周末以来,您的应用程序发生了哪些变化?很长一段时间以来,这个地区的边门都没有变化。有趣的是,我什么都没变,整个周末都没变。不是我的webapp,不是我的wicket版本,不是我的浏览器,hoster什么也没变,但我在本地电脑上遇到了同样的问题,我什么也没变。可能是一些奇怪的复活节彩蛋笑话……可能是Firefox/Chrome的更新在客户端禁用了Java而不是JavaScript的支持。看,这也是我的假设,但11.0从3月13日开始发布。自本周末以来,你的应用程序发生了什么变化?很长一段时间以来,这个地区的边门都没有变化。有趣的是,我什么都没变,整个周末都没变。不是我的webapp,不是我的wicket版本,不是我的浏览器,hoster什么也没变,但我在本地电脑上遇到了同样的问题,我什么也没变。可能是一些奇怪的复活节彩蛋笑话……可能是Firefox/Chrome的更新在客户端禁用了Java而不是JavaScript的支持。看,这也是我的假设,但11.0从3月13日起就推出了。我认为这只是一个糟糕的命名,谢谢。互联网上的一些指南使用这种方法进行javascript检测。我用NoScript插件测试了它,它工作正常,但现在您已经提到了它,NoScript还阻止Java小程序,因此将navigator.javaEnabled设置为false。我坚持使用旧的和简单的noscript标签,或者有更好的方法来实现这一点吗?我认为这只是一个糟糕的命名,谢谢。互联网上的一些指南使用这种方法进行javascript检测。我用NoScript插件测试了它,它工作正常,但现在您已经提到了它,NoScript还阻止Java小程序,因此将navigator.javaEnabled设置为false。我坚持使用旧的和简单的noscript标记,或者有更好的方法吗?。