[英]What does $.support.placeholder mean in jQuery?
我不了解这种情况: $.support.placeholder
谁能向我解释这是干什么的?
if ($.support.placeholder) {
alert("Testing");
} else {
return;
}
它正在检查$.support
.support对象上的placeholder
属性是否为真 ¹,如果是,它将发出 alert
; 如果不是,它将执行return
,退出此代码所在的函数。
jQuery的support
对象( 长期以来已弃用,不应再使用它)告诉您当前浏览器支持什么。 从链接:
表示存在不同浏览器功能或错误的属性的集合。 旨在供jQuery内部使用; 当内部不再需要特定属性以提高页面启动性能时,可以将其删除 。 为了满足您自己项目的功能检测需求,我们强烈建议您使用外部库(例如Modernizr),而不要依赖
jQuery.support
属性。
(我的重点)
在这种情况下,将检查浏览器是否支持input
元素上的placeholder
属性。 但请参见上文,检查不可靠。 如果jQuery不再需要内部知道此信息,则可能会删除该属性,并且该代码将被欺骗,以为浏览器不支持placeholder
(几乎所有人都支持),因为获取了不存在的属性的值导致undefined
,这是虚假的。
实际上,在撰写本文时(v3.3.1),当前版本的jQuery没有placeholder
:
console.log("typeof $.support.placeholder:", typeof $.support.placeholder); // "typeof $.support.placeholder: undefined" var input = document.createElement("input"); input.type = "text"; var supportsPlaceholder = "placeholder" in input; console.log("supportsPlaceholder: ", supportsPlaceholder); // "supportsPlaceholder: true" (in nearly all browsers)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
问题中的代码将错误地报告您的浏览器不支持placeholder
即使支持。
¹ 真实值是当用作布尔值(例如在if
时强制为true
的值。 虚假的值是强迫false
。 伪造的值是null
, undefined
, 0
, NaN
, ""
,当然是false
。 所有其他价值观都是真实的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.