Javascript 如果ie10及以下版本,如何防止资源被加载?

Javascript 如果ie10及以下版本,如何防止资源被加载?,javascript,polymer,Javascript,Polymer,有点特别的问题。我一直在阅读有关如何瞄准ie10及以下的内容,但实际上还没有找到任何适合我的情况的具体答案 我正在为我的网站使用一个不太支持ie10(谷歌的聚合物)的框架,因此我为用户使用ie10及以下版本设置了一个备用页面。我遇到了这样一个问题:当我在ie10中打开我的网页时,让polymer运行platform.js所需的资源导致了如此多的错误,以至于我的其他资源无法加载platform.js在我的加载顺序的顶部,我没有异步加载。我试图将ie10放在一个js文件中,该文件必须在platfor

有点特别的问题。我一直在阅读有关如何瞄准ie10及以下的内容,但实际上还没有找到任何适合我的情况的具体答案

我正在为我的网站使用一个不太支持ie10(谷歌的聚合物)的框架,因此我为用户使用ie10及以下版本设置了一个备用页面。我遇到了这样一个问题:当我在ie10中打开我的网页时,让polymer运行
platform.js
所需的资源导致了如此多的错误,以至于我的其他资源无法加载
platform.js
在我的加载顺序的顶部,我没有异步加载。我试图将ie10放在一个js文件中,该文件必须在
platform.js
下面加载,但我的代码根本没有注册,因为
platform.js
导致了很多错误


我想知道如果浏览器是
,是否有办法只加载
platform.js
!ie10
,同时仍将其置于加载顺序的顶部。这简直让我发疯。即使是链接到我可以阅读的关于如何使我的资源只在某些事件上加载的地方,也会有所帮助。谢谢你提供的任何信息

我终于想出了一种方法来做到这一点,如果将来有人感兴趣:

我在index.html文件的开头弹出了这个:

<script>
    function detectIE() {
        var ua = window.navigator.userAgent;
        var msie = ua.indexOf('MSIE ');
        var trident = ua.indexOf('Trident/');

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

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

        // other browser
        return false;
    }

    // making sure it's working..
    console.log(detectIE());

    // this is important: if you just say <= 10 then it will also accept ZERO
    // and ZERO is = false, which makes good browsers like Chrome detect as IE
    if (detectIE() >= 1 && detectIE() <= 10) {
        console.log('this is below ie10');
    } else {
        // add my script for polymer
        var script = document.createElement("script");
        script.type = "text/javascript";
        script.src = "/bower_components/platform/platform.js";

        //put it at the start of the head tag
        document.getElementsByTagName('head')[0].appendChild(script);
    }

</script>

函数检测(){
var ua=window.navigator.userAgent;
var msie=ua.indexOf('msie');
变量trident=ua.indexOf('trident/');
如果(msie>0){
//IE 10或更早版本=>返回版本号
返回parseInt(ua.substring(msie+5,ua.indexOf('.',msie)),10);
}
如果(三叉戟>0){
//IE 11(或更新版本)=>返回版本号
var rv=ua.indexOf('rv:');
返回parseInt(ua.substring(rv+3,ua.indexOf('.',rv)),10);
}
//其他浏览器
返回false;
}
//确保它工作正常。。
console.log(detectIE());

//这一点很重要:如果你只说=1&&detectIE(),可能是相关的:是的,我已经读过了——更新的版本似乎对解决大量错误毫无帮助。这些错误都与使用操作数“instanceof”有关,ie10似乎不理解这一点。在这种情况下,我建议使用测试用例来检测对该操作数的支持(尽管我会注意到,根据微软的说法,IE应该理解在怪怪模式和标准模式下,在IE6和更高版本中)。感谢您的建议,我要试试这个!不客气,很抱歉,我不能马上用了。祝你好运!