如果我尝试在不受支持的浏览器中运行生成的javascript代码,会发生什么?喜欢IE6?
我不希望最终导致我的用户看到部分正在运行的应用程序崩溃。有没有办法如何确保dart / javascript只有在支持浏览器并且我的应用程序正常降级到某个html横幅时才会运行“如果不是,请使用更新的浏览器”?
答案 0 :(得分:2)
您始终可以在纯JavaScript中检测浏览器,并且在确保浏览器有效之前不要运行dart程序。
答案 1 :(得分:2)
您可以在此处使用浏览器检测器脚本: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