浏览器类型前缀

Posted AlanTao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浏览器类型前缀相关的知识,希望对你有一定的参考价值。

不管我们对浏览器类型前缀有多么的讨厌,我们都不得不每天面对它,否者有些东西不能正常工作。这些前缀的用法有两种:在CSS里(例如“-moz-”)和在JS里。有一个神奇的X-Tag项目里有一段很聪明的javascript脚本,可以用来判断当前使用的是什么前缀——让我来展示它是如何工作的!

该函数返回的对象大概会是这个样子

Object {dom: "WebKit", lowercase: "webkit", css: "-webkit-", js: "Webkit"}
var styles = window.getComputedStyle(document.documentElement, "");

// 下一步是把这些属性转换成数组对象,搜索已知的前缀类型,如果没有发现,就缺省设置为Opera浏览器:
var pre = (Array.prototype.slice.call(styles).join("").match(/-(moz|webkit|ms)-/) || (styles.OLink === ‘‘ && [‘‘, ‘o‘]))[1];
// 它完整的表达了当前浏览器里使用的类型前缀的信息。下面是完整的代码:
var prefix = (function(){
    var styles = window.getComputedStyle(document.documentElement, "");
    var pre = (Array.prototype.slice.call(styles).join("").match(/-(moz|webkit|ms)-/) || (styles.OLink === ‘‘ && [‘‘, ‘o‘]))[1];
    var dom = ("WebKit|Moz|MS|O").match(new RegExp(‘(‘ + pre + ‘)‘, ‘i‘))[1];
    return {
        dom: dom,
        lowercase: pre,
        css: "-" + pre + "-",
        js: pre[0].toUpperCase() + pre.substr(1)
    }
}());
console.log(prefix);    // {dom: "WebKit", lowercase: "webkit", css: "-webkit-", js: "Webkit"}

html元素上获取CSS样式信息是明智的做法。这个方法假设了这些样式里一定有类型前缀信息,但是事实未必这样,不过至少很长时间内这种方法还是好用的。

以上是关于浏览器类型前缀的主要内容,如果未能解决你的问题,请参考以下文章

leetcode_1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold_[二维前缀和](代码片段

浏览器类型前缀

xml 中的 Android 谷歌地图片段。我得到“意外的命名空间前缀”

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

在代码片段中包含类型转换

国家电话代码前缀的猫鼬模式类型,例如“+44”