我需要使用 jQuery 1.6.2 为现有 jsp 页面创建一个请等待页面。我能够使 div 覆盖正常工作,并在页面中心的模式窗口中显示“请稍候”动画。然而,覆盖层仅覆盖其中一个框架集,即中心框架集。
html 结构基本上是(为了清楚起见,我省略了很多内容):
...
<frameset >
<frame id="topMostFrame">
<frameset>
<frame id="leftMostframe">
<frame id="centerMostFrame">
</frameset>
</frameset>
<noframes>
</noframes>
</body>
</html>
JQUERY
function getTheOverlay(){
$(document).ready(function() {
$("#loading-div-background").css({opacity: 0.5});
$("#loading-div-background").show();
//alert("In getOverlay!");
});
}
function remove(){
$(document).ready(function() {
$('#loading-div-background').hide();
});
}
HTML
<div id="loading-div-background" style="display:none" class="ui-widget">
<div id="loading-div" class="ui-corner-all">
<img style="height:80px;margin:50px;" src="/images/loading.gif" alt="Loading.."/>
</div>
</div>
CSS
#loading-div-background {
display:none;
position:absolute;
top:0;
left:0;
background:gray;
width:100%;
height:100%;
/* Next 2 lines IE8 */
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
}
#loading-div {
width: 300px;
height: 200px;
background-color: #ffffff;
text-align:center;
position:absolute;
left: 50%;
top: 50%;
margin-left:-150px;
margin-top: -100px;
}
我尝试将 html 移动到我的 jquery 函数中加载,但它没有在 IE8 中显示叠加层。我也曾有一段时间让 IE8 与覆盖本身一起工作,但这是使用上面的 CSS 修复的。
我需要禁用左框架上的链接,这可能是我将使用的方法,或者用覆盖层覆盖它们。是的,我知道框架很糟糕,但这就是我被赋予的工作。
我无法让覆盖层覆盖其他框架集并覆盖整个页面。我读到这对于框架集是不可能做到的,尽管我猜测可能有解决方法。但是,当我使用警报进行调试时,覆盖层会覆盖整个页面。
我的问题是:为什么使用警报会使覆盖层覆盖所有内容?即使使用框架集,我还能做些什么来获得相同的效果吗?