我在我测试过的任何其他浏览器(IE、Chrome、Opera)中都没有看到这个问题,但是每当我从服务器加载页面时,我都会在 CSS 仅应用于 Firefox 之前看到一闪而过的无样式内容.
您可以在 Firefox 浏览器中查看此网址,最新版本 59: https ://regalaunpuzzle.es/puzzles-personalizados
我在我测试过的任何其他浏览器(IE、Chrome、Opera)中都没有看到这个问题,但是每当我从服务器加载页面时,我都会在 CSS 仅应用于 Firefox 之前看到一闪而过的无样式内容.
您可以在 Firefox 浏览器中查看此网址,最新版本 59: https ://regalaunpuzzle.es/puzzles-personalizados
就我而言,FF 中 FOUC 的原因是页面上存在 iframe。如果我从标记中删除 iframe,那么 FOUC 就会消失。
但是出于我自己的黑客原因,我需要 iframe,所以我改变了这个
<iframe name="hidden-iframe" style="display: none;position:absolute;"></iframe>
进入这个
<script>
document.addEventListener('DOMContentLoaded', ()=>{
let nBody = document.querySelector('body')
let nIframe = document.createElement('iframe');
nIframe.setAttribute('name', "hidden-iframe");
nIframe.style.display = 'none';
nIframe.style.position = 'absolute';
nBody.appendChild(nIframe);
});
</script>
我在模板中添加了这个内联 JS 只是为了便于阅读:在我的例子中,这个代码每页运行一次。我知道这很脏,所以您可以将此代码添加到单独的 JS 文件中。
问题出在 Firefox Quantum v65 中。
我看到您的页面也有 iframe,所以这种方式可以提供帮助。
将主体可见性设置为隐藏,然后在单独的 JavaScript 文件中添加一个 onload 函数以使其再次可见。我们实际上所做的是在加载文档之前稍微减慢页面以加载样式。
我所做的是将一个类设置为 body <body class="hidden">
,然后是 css .hidden {visibility: hidden}
,然后是 javascript :
const body = document.querySelector(".hidden");
window.onload = () => {
body.removeAttribute("class");
}