我查看了Twitter的登录页面,注意到在Chrome中,打开自动填充后,附加到输入元素的shadowDOM中的伪元素会根据是否悬停建议而变化。
当它是普通占位符时,会出现伪元素"-webkit输入占位符",当我的电子邮件地址悬停在上面(未单击(时,会显示"-internal input considered"伪元素。
我附上了我所描述的内容的截图。
屏幕截图:
-webkit输入占位符屏幕截图
-内部输入建议的伪元素
这两个元素都在用户代理shadowDOM中。如何使用javascript检查这些伪元素中的哪一个?
您可以这样做:
var pseudo = document.getElementById("placeholder").getAttribute("pseudo")
if (pseudo == "web-input-placeholder") {
//Do something
} else if (pseudo == "internal-input-suggested") {
//Do something else
}