如何为某些浏览器加载某些脚本

How do I load certain scripts for certain browsers?

本文关键字:加载 脚本 浏览器      更新时间:2023-10-05

我有一个正在运行的应用程序,它在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();
  }

你可以在这里找到更多的例子和文档。