问题 为什么IE8在HTML密码字段中显示问号而不是项目符号?


我在HTML页面中有一个密码字段,在输入密码时不会显示项目符号或星号,而是一个带有问号符号的小框。

我在Firefox中尝试了这个,并且显示了正常的项目符号,就像在其他Web表单中输入密码一样。

有没有HTML,CSS或Javascript可以影响显示符号的方式?我们有一个相当复杂的Web框架(Oracle ADF Rich Client),尽管基于相同框架的其他应用程序不会显示此行为。


11198
2018-01-04 13:19


起源

可能与字符编码有关。 - Tatu Ulmanen
它可能,但据我们所知,该页面以UTF8提供。 - Kamiel Wanrooij
您是否根据浏览器使用不同的CSS表(例如,ie.css表)?如果是这样,我会尝试将FF用户代理更改为IE,看看它是否被复制。此外,这是真的在具有不同配置的多台计算机上(可能是一个搞砸的系统配置) - Cryophallion
好主意。不幸的是,我不能轻易。不仅CSS是特定于用户代理的,Javascript甚至是HTML也是如此,因此我的应用程序甚至不会加载。这是Oracle ADF Framework的一个属性,因此无法解决它。 - Kamiel Wanrooij


答案:


这是一个字体问题。 IE正在尝试使用U + 25CF Black Circle字符(●,SO用于其徽章的同一个字符)来渲染其密码字符,但是没有在正在使用的字体中找到它的字形。

如果你改变了,就会发生这种情况 font-family 的 <input> 元素到不包含此字符的字形的字体,或者如果用户摆弄了它们 FontSubstitutes 指出 MS Shell Dlg,默认情况下IE用于呈现表单字段的字体,指向“Microsoft Sans Serif”以外的字体,其中包含●的字形。

Firefox有自己的字体后备算法,与IE / Windows分开,后者更有可能回退到包含●的不同字体。


15
2018-01-04 14:27



就是这样,谢谢!字体是Calibri .. - Kamiel Wanrooij
此问题还有更多内容:使用Calibri时,字符U + 25CF在输入中显示“text”类型,但相同的字符U + 25CF显示为带有问号的正方形在输入的屏蔽文本中键入“密码”。 - Eric Bréchemier
密码输入的行为与Internet Explorer 8中缺少的字形有关。对于文本输入/其他元素(span,div ...)中显示的文本,有一系列后备字体用于查找丢失字形。如果在CSS中选择的字体系列中找不到字形,则默认情况下,在Internet选项中配置的默认字体“Times New Roman”/“Courier New”中查找字形。如果在配置的默认值中找不到字形,则以另一种系统字体查找字形。密码输入不是这种情况,它看起来更像是一个错误,而不是一个功能。 - Eric Bréchemier