如何在页面加载期间打开 css 弹出窗口,然后在页面加载完成时将其关闭
How to open a css popup during page load then close it when the page load completes
我的网页需要 20-30 秒才能加载。是否可以打开一个弹出窗口 ("Please wait..."),然后在页面加载完成后关闭?我尝试了以下方法,但没有用。该页面以所有方式按预期加载,但一种方式:弹出窗口未出现。我使用 Firefox 作为我的开发平台。当我反转条件时(使 #container hidden/none 和 closePopup() 重置为 visible/block),它完美地工作(页面完成加载时出现弹出窗口)。作为第二个问题,即使我让它工作,它是否会极大地依赖于浏览器?谢谢!
<html><head><style>
#container{
width : 100%;
height : 100%;
top : 0;
position : absolute;
visibility : visible;
display: block;
background-color : rgba(22,22,22,0.5);
}
#popup{
position : relative;
margin: 0 auto;
top: 35%;
width : 300px;
padding : 10px;
border : 1px solid black;
background : yellow;
box-shadow: 5px 5px 5px #252525;
}
</style>
<script language="javascript">
function closePopup(){
document.getElementById('container').style.visibility = "hidden";
document.getElementById('container').style.display = "none";
}
</script></head><body onload="closePopup();">
<div id="container"><div id="popup">Please Wait...</div></div>
20 seconds worth of stuff happens here.
</body></html>
这种写法 运行 是在弹出窗口加载之前关闭弹出窗口的脚本。关闭弹出窗口的脚本被加载到 head 标签中,然后作为 body 标签的第一个属性执行,但是您直到稍后在 body 中才向弹出窗口输入任何内容。在脚本标签中使用 defer 属性。因此,在页面解析完成之前,关闭弹出窗口的脚本不会 运行 。像这样:
<script language="javascript" defer>
function closePopup(){
document.getElementById('container').style.visibility = "hidden";
document.getElementById('container').style.display = "none";
}
</script>
为了回答你的第二个问题,使用 defer 属性几乎适用于所有现代浏览器。包括 Safari、Chrome、Firefox 3.6+、Opera 15.0+ 和 Edge 10.0+
我的网页需要 20-30 秒才能加载。是否可以打开一个弹出窗口 ("Please wait..."),然后在页面加载完成后关闭?我尝试了以下方法,但没有用。该页面以所有方式按预期加载,但一种方式:弹出窗口未出现。我使用 Firefox 作为我的开发平台。当我反转条件时(使 #container hidden/none 和 closePopup() 重置为 visible/block),它完美地工作(页面完成加载时出现弹出窗口)。作为第二个问题,即使我让它工作,它是否会极大地依赖于浏览器?谢谢!
<html><head><style>
#container{
width : 100%;
height : 100%;
top : 0;
position : absolute;
visibility : visible;
display: block;
background-color : rgba(22,22,22,0.5);
}
#popup{
position : relative;
margin: 0 auto;
top: 35%;
width : 300px;
padding : 10px;
border : 1px solid black;
background : yellow;
box-shadow: 5px 5px 5px #252525;
}
</style>
<script language="javascript">
function closePopup(){
document.getElementById('container').style.visibility = "hidden";
document.getElementById('container').style.display = "none";
}
</script></head><body onload="closePopup();">
<div id="container"><div id="popup">Please Wait...</div></div>
20 seconds worth of stuff happens here.
</body></html>
这种写法 运行 是在弹出窗口加载之前关闭弹出窗口的脚本。关闭弹出窗口的脚本被加载到 head 标签中,然后作为 body 标签的第一个属性执行,但是您直到稍后在 body 中才向弹出窗口输入任何内容。在脚本标签中使用 defer 属性。因此,在页面解析完成之前,关闭弹出窗口的脚本不会 运行 。像这样:
<script language="javascript" defer>
function closePopup(){
document.getElementById('container').style.visibility = "hidden";
document.getElementById('container').style.display = "none";
}
</script>
为了回答你的第二个问题,使用 defer 属性几乎适用于所有现代浏览器。包括 Safari、Chrome、Firefox 3.6+、Opera 15.0+ 和 Edge 10.0+