使用' autofocus'在Firefox中使用无格式内容(FOUC)的Flash在输入字段中

时间:2017-04-29 22:30:38

标签: html5 forms autofocus fouc

实际上,这更像是一个错误描述,而不是一个问题。

我在一个非常简单的登录页面上注意到Firefox中无格式内容(FOUC)的闪现。没有使用图像。没有沉重的CSS。所有Javascript都放在代码的末尾,就在关闭正文标记之前。但是当页面加载时,Firefox显示一个完全没有样式的页面大约100毫秒,然后css生效。每次都会发生这种情况,无一例外。

我发现有些黑客可以解决这个问题: 只需在<script>中添加<head>元素,在其中放置您喜欢的任何javascript代码,甚至是简单的评论和 - bam! - 问题解决了。像这样:

<script>/* foo */</script>

FOUC的实际原因似乎是将autofocus属性与其中一个表单字段一起使用。因此,删除&#39;自动对焦&#39;也解决了这个问题。

不是很奇怪吗? 有谁知道比我更好的解决方案?

1 个答案:

答案 0 :(得分:11)

我可以在Firefox v.53中确认这种行为,通过消除我将其跟踪到自动对焦&#39;也是文本输入的属性。

您可以通过在Javascript中设置焦点来删除FOUC,例如:

document.getElementsByClassName('form-field')[0].focus();

或者使用jQuery:

$('.form-field').focus();