繁体   English   中英

$ .support.placeholder在jQuery中是什么意思?

[英]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 伪造的值是nullundefined0NaN"" ,当然是false 所有其他价值观都是真实的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM