缩短javascript检查CSS属性支持
Shortening a javascript checking for CSS property support
EDIT:
我有一个脚本检查CSS属性支持,在这种情况下,连字符支持。它很长,但在受访者的帮助下,它被缩短为:var styleEngine = document.documentElement.style;
if ((!('hyphens' in styleEngine)) && (!('MozHyphens' in styleEngine)) && (!('WebkitHyphens' in styleEngine)) && (!('msHyphens' in styleEngine)))
alert('CSS hyphenation is not supported.');
else
alert('CSS hyphenation is supported.');
这个编辑的原因,包括标题,是为了让这篇文章对人们更有用的人搜索Javascript检查CSS属性和/或值支持。后来,我学到了一些关于CSS支持及其检查的知识,这可能会让你感兴趣。我学到的第一件事是Chrome在这一刻(2014)说它支持-webkit-hyphens
,但它不支持最重要的值auto
。这意味着我们必须检查是否支持属性值。
可以通过两种方式实现。第一个是新的CSS规则@supports
。这在https://developer.mozilla.org/en-US/docs/Web/CSS/@supports上有解释。另一种方法是使用Javascript,详见http://ryanmorr.com/detecting-css-style-support/。在连字符的情况下,当不支持正确的连字符时,这里有一个Javascript polyfill: https://code.google.com/p/hyphenator/。
将其提取为函数:
function hasStyle(prop) {
return prop in document.documentElement.style;
}
那么你可以使用:
if (!hasStyle('MozHyphens' && !hasStyle('msHyphens')) { ... }
不要太短,但要足够短(并且封装)。
为了更简洁,您可以创建另一个函数:function hasHyphens() {
return hasStyle('MozHypens') || hasStyle('msHyphens');
}
然后:
if (!hasHyphens()) { ... }
怎么样:
ValuesIntersect(valArray1, valArray2) {
var len = valArray2.length,
i = 0,
found = false;
while (i<len && !found) {
found = valArray2[i] in valArray1;
++i;
}
return found;
}
像这样使用:
if (!ValuesIntersect(['hyphens','MozHyphens', 'WebkitHyphens', 'msHyphens'], document.documentElement.style)) {...}
我发现这是最好的可读性。当您在if
语句时,这清楚地显示了您正在检查的内容。外部函数不一定是小的,因为它很少被检查。它足够通用,可以在多个地方工作。
相关文章:
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- 对象不支持属性或方法“自动完成”
- SCRIPT438:对象没有't支持属性或方法'endsWith'在IE10中
- javascript表单字段submit:Object dos'在IE8中不支持此属性或方法
- 对象没有't支持属性或方法'transformNode'在Internet Explorer 1
- jQuery Deferred and promise-错误:对象没有't支持属性或方法'然后'
- 如何检测对HTML5的支持;下载”;属性
- 如何修复错误'对象没有't支持属性或方法'getScreenCTM''在Inter
- JSHint 错误“对象不支持此属性或方法”用于 javascript 闭包
- 对象不支持属性或方法“确认”
- 对象不支持属性或方法“jscomp_symbol_iterator0”
- 对象不支持 igGrid 中的属性或方法“_super”
- 下拉 Javascript 错误:对象不支持属性或方法“匹配”
- Javascript ES6 的属性和支持值命名约定
- 运行时错误:对象不支持属性或方法
- 如何在javascript中检查lang属性支持
- Css属性支持检测
- 背景位置属性支持
- 缩短javascript检查CSS属性支持
- Qt下载属性支持