编程语言
首页 > 编程语言> > javascript-如何在浏览器版本条件(IE 10及更高版本)中使用元标记?

javascript-如何在浏览器版本条件(IE 10及更高版本)中使用元标记?

作者:互联网

我正在使用IE11.如果浏览器是IE11,我必须强制使用浏览器充当IE 10.
由于Microsoft删除了对“条件注释”的支持,因此我正在努力寻找一种方法.
我用JavaScript尝试过

<script language="JavaScript">
         function setVersion() {
             if (getInternetExplorerVersion() === 11) {
                 debugger;
                 $('head').append('<meta http-equiv="X-UA-Compatible" content="IE=10" />');
             }
         }
         //Method to get the IE version
         function getInternetExplorerVersion() {
             var rv = -1;
             if (navigator.appName == 'Microsoft Internet Explorer') {
                 var ua = navigator.userAgent;
                 var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
                 if (re.exec(ua) != null)
                     rv = parseFloat(RegExp.$1);
             }
             else if (navigator.appName == 'Netscape') {
                 var ua = navigator.userAgent;
                 var re = new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})");
                 if (re.exec(ua) != null)
                     rv = parseFloat(RegExp.$1);
             }
             return rv;
         }
    </script>

现在由于加载页面后将调用getVersion,因此此代码没有任何效果.
还有其他方法吗?

解决方法:

您可以使用带注释的条件注释

<!--[if gt IE 9]><!-->
    <meta http-equiv="X-UA-Compatible" content="IE=10" />
<!--<![endif]-->

这样,ie10及更高版本将具有该标签,而ie9及更低版本将具有该标签,因为条件不满足.

例:

<!--[if lte IE 8]>
    <script type="text/javascript" src="/app.ie8.js"></script>
<![endif]-->
<!--[if gte IE 9]><!-->
    <script type="text/javascript" src="/app.ie8.js" defer></script>
<!--<![endif]-->

将在ie8上加载不带延迟的js,而在ie9及更高版本(以及所有其他浏览器)中将以延迟形式加载脚本,而忽略条件,因为它们被视为已注释

有一个指向Wiki的链接以进行说明.

标签:conditional-comments,internet-explorer,meta-tags,html,javascript
来源: https://codeday.me/bug/20191119/2038662.html