实际上,这更像是一个错误描述,而不是一个问题。
我在一个非常简单的登录页面上注意到了火狐中非样式内容(fouc)的闪现。没有使用图像。没有重的CSS。所有的javascript都放在代码的末尾,就在结束体标记之前。但是当页面加载时,firefox会显示一个完全没有样式的页面,持续大约100毫秒,然后CSS就会生效。这种情况在任何时候都会发生,无一例外。
我无意中发现了一种破解方法:
只需将一个<script>
元素添加到<head>
中,将您喜欢的任何javascript代码放入其中,甚至放入一个简单的注释和-bam!-问题解决了。这样地:
<script>/* foo */</script>
fouc的实际原因似乎是在表单字段中使用了autofocus属性。所以移除“自动对焦”也解决了这个问题。
这不奇怪吗?
有人知道比我更好的解决方案吗?
最佳答案
我可以在firefox v.53中确认这一行为,通过消除,我跟踪到了文本输入的“autofocus”属性。
您可以通过在javascript中设置焦点来移除fouc,比如:
document.getElementsByClassName('form-field')[0].focus();
或者使用jquery:
$('.form-field').focus();