1

我对 JSP 有点陌生,现在我被一个我们大多数人不希望遇到的问题难住了:Internet Explorer 6.0 支持。

我搜索了谷歌并没有找到答案。我的问题是,有没有办法根据浏览器版本在 JSP 中加载不同的 Javascript?

我的算法是:检查 Internet Explorer 版本。如果是 IE6,则加载 ie6.js 否则加载 normal.js。

到目前为止,这就是我加载 JS 的方式。

<script type="text/javascript" src="../js/normal.js"></script>
4

3 回答 3

1

您可以使用条件注释为 Internet Explorer 加载不同的 Javascript。

因此,对于您的情况:

<!--[if !IE 6]><!-->
    <script type="text/javascript" src="normal.js" />
<!--<![endif]-->
<!--[if IE 6]>
    <script type="text/javascript" src="ie6.js" />
<![endif]-->
于 2013-02-27T06:29:30.277 回答
0

你可以通过这样的navigator对象来做到这一点:

     var ua = navigator.userAgent;
     if(navigator.appName == 'Microsoft Internet Explorer'){
            //check for version

            var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
            if (re.exec(ua) != null){
              version = parseFloat( RegExp.$1 );
            }
            if(version == 6.0){
               //load specific js for IE 6.0
               var file = document.createElement("script");
               file.setAttribute("type", "text/javascript");
               file.setAttribute("src", "../js/ie_6.js");
               document.getElementsByTagName("head")[0].appendChild(file);
            }
            else{
                //load normal.js for other IE versions.
                var file = document.createElement("script");
                file.setAttribute("type", "text/javascript");
                file.setAttribute("src", "../js/normal.js");
                document.getElementsByTagName("head")[0].appendChild(file);
            }
     }
于 2013-02-27T06:31:54.633 回答
0

如果要在服务器端执行此操作,则必须检查User-AgentHTTP 标头。在此之后,您可以为当前请求设置一些属性,然后在 JSP 页面中检查该属性:

...
String browserString = httpServletRequest.getHeader("User-Agent");

String browserVersion = ...; // Some user agent parsing and version determining

httpServletRequest.setAttribute("browserVersion", browserVersion);

用户代理示例可以在 Internet 上找到,例如http://www.useragentstring.com/pages/Internet%20Explorer/

于 2013-02-28T10:50:23.350 回答