检查“-ms-expand”支持
Check for "-ms-expand" support
我正在尝试制作一个小脚本来在我的 html 测试中设置"选择"标签的样式,以支持"外观"样式属性:
if ("webkitAppearance" in select.style ||
"MozAppearance" in select.style ||
"oAppearance" in select.style ||
"appearance" in select.style ||
"-ms-expand" in select.style) {
return;
}
// else apply wrapper and style it.
问题是我不知道如何检查 -ms-expand 属性,因为它不起作用,并且我不想在这种情况下用户浏览器版本嗅探。
你不能在javascript中检查-ms-expand
,因为它是伪元素,它不会影响内容。您无法像 Modernizr
中的 ::before
/::after
那样检测到它,但在 IE 10+ 中启用了-ms-expand
,因此最好通过 javascript 检测 IE 10 或更高版本:
检测 IE 11:
!window.ActiveXObject && "ActiveXObject" in window
检测 IE 10:
var isIE10 = false;
/*@cc_on
if (/^10/.test(@_jscript_version)) {
isIE10 = true;
}
@*/
就性能而言,这不是最佳解决方案,但您可以尝试以下方法:
var expandSupport = (function(){
try{
var style = document.createElement("style");
style.textContent = "#ie10-test::-ms-expand{ }";
document.body.appendChild(style);
var supported = !!style.sheet.rules.length;
document.body.removeChild(style);
return supported;
} catch(e){ return false; }
}());
document.body.appendChild(document.createTextNode(expandSupport ? "Your browser appears to support the -ms-expand pseudo-element" : "Your browser doesn't appear to support the -ms-expand pseudo-element"));
在这里摆弄。
这样做的原因是浏览器会丢弃它们不支持或无法解释的任何选择器,这意味着任何不了解"::-ms-expand"伪元素是什么的浏览器都可能不是 IE10 或更高版本。
从本质上讲,此代码所做的只是创建一个虚拟<样式>标记,添加一个只有 IE10+ 支持的规则集,并报告在其中找到的规则数。样式>
相关文章:
- jQuery-2.1.1.min.js或最新版本jQuery-2.13.min.js不会't支持'@
- jQuery检测浏览器是否支持Zoom
- 错误:对象没有't支持'自动完成'
- EmberJS中支持单字母单词模型
- javascript中的命名空间,IDE中支持代码完成/内容辅助's
- Internet Explorer缺少占位符支持,特别是密码字段
- 为什么我得到错误IE修剪方法是't支持
- 任何浏览器都不支持javascript函数
- GTK百老汇支持同时连接
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- 对象不支持属性或方法“自动完成”
- 对象没有'不支持set_viewXML
- Javascript Q库浏览器支持
- 您的平台不支持RxJS-Array.observe
- React Native当前是否支持访问用户'的通讯簿
- 将HTML(支持文件)中的令牌(字符串、数字等)传递给LogiXML
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- Excellen导出xlsx支持
- 检查“-ms-expand”支持
- MS Edge画布不支持SVG填充颜色