我有一个响应页面,该页面在加载期间通过javascript再次呈现。但这会导致闪烁,因为呈现了页面,然后Javascript插入了页面正文以再次呈现它。
CSS样式表和Javascript都包含在html本身中。
我现在使用的解决方案是:在我设置的样式表中:
html {
visibility: hidden;
}
然后在onload()末尾的Javascript中调用:
function makePageVisible(){
document.getElementsByTagName("html")[0].style.visibility = "visible";
}
这很好用。但是我担心可能禁用了Javascript的浏览器。我意识到这可能很少见,但随后我读了iPhone禁用Javascript的帖子。所以我想也许它并不是那么罕见。
无论如何,对于我来说,有没有一种更好的方法可以隐藏和显示可以使用或不使用javascript的页面内容?
答案 0 :(得分:3)
一种选择是拥有一个<noscript>
标记,其中包含一个使事物可见的<style>
:
<style>
html {
visibility: hidden;
}
</style>
<noscript>
<style>
html {
visibility: visible;
}
</style>
</noscript>
您也可以使用Javascript隐藏(如果禁用JS,它将无法运行):
<script>
document.documentElement.style.visibility = 'hidden';
</script>
</head>
...