在javascript中检测Safari浏览器

时间:2017-03-15 13:07:33

标签: javascript regex safari detection

我找到了这段代码片段,用于检查是否使用了Safari浏览器:

var isSafari = /constructor/i.test(window.HTMLElement);

但我真的不知道这里发生了什么。有人可以解释一下它的工作原理吗?我知道constructor返回创建RegExp对象原型的函数,i执行不区分大小写的匹配,但究竟是HTMLElement是什么?

1 个答案:

答案 0 :(得分:4)

在safari中,window.HTMLElement返回一个名为HTMLElementConstructor的函数。

所以,这样做:

/constructor/i.test(function HTMLElementConstructor() {}) // return true

但是对于其他浏览器(FF,Chrome),它会返回HTMLElement

/constructor/i.test(function HTMLElement() {}) // return false

但是谢谢你的观察!我希望我们可以使用它以及这里提到的方法:Detect Safari browser