繁体   English   中英

如果 Internet Explorer - 添加脚本

[英]If Internet Explorer - Add Script

如果用户使用 Internet Explorer,我正在尝试动态添加脚本。 我试过 IE Con​​ditionals,但 chrome 不喜欢!IE标签,所以我正在尝试 jquery 方式:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" ></script>
<script type="text/javascript">
    if($.browser.msie){
        document.write('<script type="text/javascript" src="ie/ieFix.js" ></script>');
    }
    else{
        document.write('<script type="text/javascript" src="dynamic.js" ></script>');
    }
</script>

我不确定为什么它不让我添加它,而是返回'); } else{ document.write(''); } '); } else{ document.write(''); }

将它们放入变量中具有相同的效果:/

IE 条件语句

<!--[if !ie]>-->
    <script type="text/javascript" src="dynamic.js" ></script>
<!--<![endif]-->
<!--[if ie]>-->
    <script type="text/javascript" src="ie/ieFix.js" ></script>
<!--<![endif]-->

该行中的</script>

document.write('<script type="text/javascript" src="ie/ieFix.js" ></script>');

实际上匹配作为结束标记

<script type="text/javascript">

在它上面的线上。 你应该把它改写成类似的东西

document.write('<script type="text/javascript" src="ie/ieFix.js" ></scr' + 'ipt>');

这样您就不会将浏览器与结束</script>标签混淆。

任何 IE 检查

function detectIEEdge() {
    var ua = window.navigator.userAgent;

    var msie = ua.indexOf('MSIE ');
    if (msie > 0) {
        // IE 10 or older => return version number
        return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
    }

    var trident = ua.indexOf('Trident/');
    if (trident > 0) {
        // IE 11 => return version number
        var rv = ua.indexOf('rv:');
        return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
    }

    var edge = ua.indexOf('Edge/');
    if (edge > 0) {
       // Edge => return version number
       return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
    }

    // other browser
    return false;
}

如果操作正确,Chrome 可与!IE配合使用:

<!--[if !ie]>-->
    Put stuff for non-IE browsers here
<!--<![endif]-->

您在上面的代码中遇到问题的原因是 HTML 解析器将</script>视为</script>的结尾而不是字符串的一部分。 人们通常通过使用<\\/script>来解决这个问题。


更新:您现在做错了“如果 IE”。

<!--[if ie]>
    IE stuff - this is a "conditional reveal"
<![endif]-->
<!--[if !ie]>-->
    Non-IE stuff - this is a "conditional hide"
<!--<![endif]-->

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM