如何为某些浏览器加载某些脚本
How do I load certain scripts for certain browsers?
我有一个正在运行的应用程序,它在Chrome和Firefox中运行得很好。Safari是另一回事。举个例子,让我们假设这是我的应用程序:
'use strict';
const x = 3;
function test(){
let y = 4;
return y;
};
当我在Safari中运行它时,我得到:
SyntaxError:意外的关键字"const"。在严格模式下不支持Const声明
然后,如果我删除"使用严格",我得到:
SyntaxError:意外的标识符'y'
在这一点上,我决定第一次研究transpiling,所以我安装了Babel,并将客户端代码转换为ES5,放在一个新的文件夹中。
我现在的问题是,如果用户使用Chrome/Firefox,加载原始代码的最佳实践是什么,但如果用户使用Safari,加载转换后的代码的最佳做法是什么?我的脑袋在这儿对吗?
要检测是否正在使用safari:
var safariCheck=Object.protype.toString.call(window.HTMLElement).indexOf('Constructor')>0;
如果以上语句符合条件,那么您就可以加载safari所需的代码。如果没有,你可以加载Firefox或Chrome代码。
检查功能最干净的方法是使用Modernizer
有了这个库,你可以检查浏览器是否已经准备好了es6功能,代码是:
if (Modernizr.es6array) {
loadNewCode();
} else {
loadOldCode();
}
你可以在这里找到更多的例子和文档。
相关文章:
- Google Adsense多次加载脚本
- 如何准确执行加载脚本&退出弹出窗口
- RequireJ无法随机加载脚本
- 通过浏览器加载页面时触发加载脚本(js或jQuery)'s”;返回“;作用
- 在以前的文件夹中加载脚本
- 如何重新加载脚本标记
- 正在脚本中加载脚本
- 在pjax完成其工作时加载脚本
- I'我用setTimeout加载脚本,你能找到一个更快的方法吗
- 在页面模板上加载脚本
- 如何在我的情况下创建加载脚本
- 当用$.getScript()加载脚本时,有一种方法可以从用$.get script()装载的脚本中调用父脚本中的函数
- 延迟加载 脚本加载和/或执行
- 如何使用谷歌页面速度CSS加载脚本延迟多个CSS文件
- 最后加载脚本
- 如何基于HTML中的类加载脚本
- 在局部视图中加载脚本文件
- 如何防止在使用hapi.js reply().hold()时重新加载脚本
- 异步加载脚本
- 脚本加载脚本广告