既存の jsp ページに jQuery 1.6.2 を使用して、しばらくお待ちくださいページを作成する必要があります。ページの中央にあるモーダル ウィンドウで待機アニメーションとともに、div オーバーレイを機能させることができました。ただし、オーバーレイはフレームセットの 1 つ、中央のフレームのみをカバーします。
HTML構造は基本的に次のとおりです(わかりやすくするために多くを省略しています):
...
<frameset >
<frame id="topMostFrame">
<frameset>
<frame id="leftMostframe">
<frame id="centerMostFrame">
</frameset>
</frameset>
<noframes>
</noframes>
</body>
</html>
Jクエリ
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;
}
jquery 関数でロードするように html を移動しようとしましたが、IE8 ではオーバーレイが表示されませんでした。また、IE8 でオーバーレイ自体を動作させることもできましたが、上記の CSS を使用して修正しました。
左フレームのリンクを無効にする必要があります。これはおそらく使用するアプローチであるか、オーバーレイでそれらをカバーします。はい、私はフレームが悪いことを知っていますが、それは私が仕事をするために与えられたものです.
オーバーレイを他のフレームセットに重ねてページ全体を覆うことができません。フレームセットでこれを行うことは不可能であると読みましたが、回避策があると思います。ただし、デバッグ目的でアラートを使用すると、オーバーレイがページ全体を覆います。
私の質問は、オーバーレイがすべてをカバーするアラートを使用しているのはなぜですか? フレームセットを使用しても、同じ効果を得るために他にできることはありますか?