javascript - $.support.placeholder 在 jQuery 中是什么意思?
问题描述
我不明白这种情况:$.support.placeholder
谁能给我解释一下这是干什么用的?
if ($.support.placeholder) {
alert("Testing");
} else {
return;
}
解决方案
它正在检查对象placeholder
上的属性是否真实¹,如果是,它会执行; 如果没有,它会退出该代码所在的函数。$.support
alert
return
jQuery 的support
对象(早已弃用,不应再使用)告诉您当前浏览器支持什么。从链接:
代表不同浏览器功能或错误存在的属性集合。供 jQuery 内部使用;当内部不再需要特定属性以提高页面启动性能时,可能会删除它们。对于您自己项目的功能检测需求,我们强烈建议使用诸如Modernizr之类的外部库,而不是依赖
jQuery.support
.
(我的重点)
在这种情况下,检查浏览器是否支持元素的placeholder
属性。input
但见上文,检查是不可靠的。如果 jQuery 不再需要在内部知道此信息,则可能会删除该属性,并且该代码将被欺骗认为浏览器不支持placeholder
(几乎所有支持),因为获取不存在的属性的值会导致结果in undefined
,这是假的。
事实上,在撰写本文时,jQuery 的当前版本(v3.3.1)没有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
即使支持也不支持。
¹真值是true
在用作布尔值时强制转换为的值,例如在if
. 一个虚假值是一个强制false
. 虚假值是null
, undefined
, 0
, NaN
, ""
, 当然还有false
; 所有其他值都是真实的。
推荐阅读
- python - 芹菜。创建太多任务
- java - 如何更改实质上创建空轮的 switch 语句?
- javascript - 弹丸速度和 sin 和 cos 的作用
- mysql - MySQL 忽略 max_connections
- python - MariaDB/Django 出现数据库错误。为什么会问我是否安装了mysqlclient?
- json - MQTT + Telegraf + InfluxDB 插件错误:无效字符
- ios - Google 移动广告 SDK 在没有 AppMeasurement 的情况下进行了初始化
- sed - SED 替换特定位置的空格
- css - 使用 pandoc 将 Markdown 转换为 PDF 时如何设置页码样式?
- xslt - DNN - 将窗格添加到 DDR 菜单项