具体的な解決策は次のとおりです。
1. IE と FF での document.body オブジェクトの clientHeight、offsetHeight、scrollHeight 属性の違い。
clientHeight
IE と FF では、どちらもブラウザーの表示領域、つまり、ページを除いた残りのページ表示領域の高さを参照する属性に違いはありません。ブラウザのツールバーのステータスバー。
offsetHeight
IE では、offsetHeight はブラウザの表示領域 (端を含む) の高さでもあります
FF では、offsetHeight はページの特定のコンテンツの高さです
scrollHeight
IE では、scrollHeight ページの特定のコンテンツの高さであり、clientHeight
より小さい場合があります。FF では、scrollHeight は Web ページのコンテンツの高さですが、最小値は clientHeight
2 です。以下は、現在のページの高さを取得するためのクロスブラウザーのソリューションです。
function getPageSize()
{
var body = document.documentElement;
var bodyOffsetHeight = 0;
var bodyScrollHeight = 0; [0, 0];
pageDimensions[0]=body.clientHeight;
bodyOffsetWidth=body.offsetWidth; >bodyScrollWidth= body.scrollWidth;
bodyScrollHeight = body.scrollHeight;
if(bodyOffsetHeight > pageDimensions[0])
{
pageDimensions[0]=bodyOffsetHeight; if(bodyOffsetWidth > pageDimensions[1])
{
pageDimensions[1]=bodyOffsetWidth;
}
if(bodyScrollHeight > pageDimensions[0])
{
pageDimensions[ 0]= bodyScrollHeight;
if(bodyScrollWidth > pageDimensions[1])
{
pageDimensions[1]=bodyScrollWidth;
return pageDimensions;
3. div をマスク レイヤーとしてページに配置する必要があります。このマスク レイヤーの CSS スタイルは次のとおりです。
コードをコピー
コードは次のとおりです:
.lockDiv
{
4.クライアント上で以下の JavaScript を使用して、ページ全体をマスク レイヤーで囲みます。
コードをコピーします
コードは次のとおりです。 🎜>var timeHdl;
function DisablePage()
{
var ctrlSandglass = document.getElementById("divSandglass");
if(sandglassSpan==0)
{
ウィンドウ。 clearTimeout(timeHdl );
ctrlSandglass.style.display = "none";
sandglassSpan = 1; >{ document.body.style.cursor = 'wait';
var pageDimensions = getPageSize();
5. ASP.net Validator コントロールがページで使用されている場合は、次の JavaScript を使用する必要があります。
コードをコピーします
コードは次のとおりです。 🎜>var timeHdl;
function DisablePageHaveValidator()
{
var ctrlSandglass = document.getElementById("divSandglass")
if(false == Page_IsValid)
{
sandglassSpan = 0;
}
if(sandglassSpan==0)
{
window.clearTimeout(timeHdl);
ctrlSandglass.style.display = "none"; style.cursor = 'auto';
sandglassSpan = 1;
else
{
document.body.style.cursor = 'wait'; = "ブロック ";
var pageDimensions = getPageSize();
ctrlSandglass.style.left = 0; ;
ctrlSandglass.style.width = pageDimensions[1]; timeHdl = window.setTimeout(DisablePageHaveValidator, 200);
}