【问题标题】:How to make Asp.net website work both in IE 11 (Non comparability mode ) and IE 8?如何使 Asp.net 网站同时在 IE 11(非可比模式)和 IE 8 下工作?
【发布时间】:2015-02-19 05:08:52
【问题描述】:

我们现在有一个在 IE 8 中运行的网站,我们需要让它在 IE 11 中运行(不可比较模式)。当我对在 IE 11 中工作进行更改时,它在 IE8 中不起作用(JavaScript 问题,如标签名给出不同的值、创建 srcelement、document.all 以及更多问题)。

我尝试创建两个 java 脚本文件,一个用于 IE8,一个用于 IE 11,并根据 IE 版本加载了几页,但似乎不实用。处理这种情况的最佳方法是什么?

【问题讨论】:

  • 这可能是重复的。无论哪种方式,这篇文章都应该可以帮助您实现目标。 stackoverflow.com/questions/3688769/…
  • 我想知道除了添加不同的 javascript 文件(这是一个不同的问题)之外还有哪些其他选项。

标签: javascript jquery asp.net html cross-browser


【解决方案1】:

这将返回 IE 浏览器版本,否则返回 false。将逻辑基于选择要使用的 JS 文件的最酷部分是,您的 JS 代码中不会有一堆 IF 语句,例如,

IF IE11 
 run all this JS code
ELSE IF IE 8 
 run all this JS code
ELSE
 hopefully this JS will work

但另一方面,通过这样做,您将不会拥有大量包含大部分重复代码的 JS 文件。

function msieversion() {

        var ua = window.navigator.userAgent;
        var msie = ua.indexOf("MSIE ");

        if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))      // If Internet Explorer, return version number
            alert(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))));
        else                 // If another browser, return 0
            alert('otherbrowser');

   return false;
}

【讨论】:

  • 不要依赖用户代理,而是使用特征检测。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多