繁体   English   中英

dart2js编译的代码在不受支持的浏览器中运行

[英]dart2js compiled code running in an unsupported browser

如果我尝试在不受支持的浏览器中运行生成的javascript代码会发生什么? 喜欢IE6?

我不希望最终我的用户会看到部分工作破坏的应用程序。 有没有办法如何确保dart / javascript只有在支持浏览器并且我的应用程序优雅地降级到某些html横幅时才会运行“请使用更新的浏览器”如果不是?

您始终可以在纯JavaScript中检测浏览器,并且在确保浏览器有效之前不要运行dart程序。

您可以在此处使用浏览器检测器脚本: http//www.quirksmode.org/js/detect.html

我从头顶编写了这段代码,我现在没有可供使用的测试机:

var isNewFirefox = BrowserDetect.browser === 'Firefox'  && BrowserDetect.version >= 7;
var isNewChrome  = BrowserDetect.browser === 'Chrome';
var isNewIE      = BrowserDetect.browser === 'Explorer' && BrowserDetect.version >= 9;
var isNewSafari  = BrowserDetect.browser === 'Safari'   && BrowserDetect.version >= 5.1;
var isNewOpera   = BrowserDetect.browser === 'Opera'    && BrowserDetect.version >= 12;

if (isNewFirefox || isNewChrome || isNewIE || isNewSafari || isNewOpera) {
    var script = document.createElement('script');

    if (navigator.webkitStartDart || navigator.startDart || navigator.mozStartDart || navigator.oStartDart || navigator.msStartDart) {
        // Load Dart code!
        script.setAttribute('type', 'application/dart');
        script.setAttribute('src', 'http://.../foo.dart');
    } else {
        // Load dart2js code!
        script.setAttribute('src', 'http://.../foo.js');
    }

    document.body.appendChild(script);
} else {
    alert('Application wont work');
}

版本信息可在以下网址找到: http//www.dartlang.org/support/faq.html#what-browsers-supported

Dart VM检测: http//www.dartlang.org/dartium/#detect

暂无
暂无

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

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