Rumah >hujung hadapan web >tutorial js >Bagaimana untuk menghalang pengguna daripada melakukan operasi lain pada halaman web semasa halaman web memuat turun files_jquery

Bagaimana untuk menghalang pengguna daripada melakukan operasi lain pada halaman web semasa halaman web memuat turun files_jquery

WBOY
WBOYasal
2016-05-16 16:43:051646semak imbas

Apabila memuat turun fail dari halaman web, kadangkala fail terlalu besar dan mengambil sedikit masa untuk menjana fail. Pada masa ini, untuk menghalang pengguna daripada melakukan operasi lain pada halaman web, satu kaedah adalah dengan menggunakan div untuk menutup halaman web dan mengunci halaman web.

function lockScreen() 
{ 
sWidth=$(window).width(); 
sHeight=$(window).height(); 
var bgObj=document.createElement("div"); 
bgObj.setAttribute('id','bgDiv'); 
bgObj.style.position="absolute"; 
bgObj.style.top="0"; 
bgObj.style.background="#CCCCCC"; 
bgObj.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75"; 
bgObj.style.opacity="0.6"; 
bgObj.style.left="0"; 
bgObj.style.width=sWidth + "px"; 
bgObj.style.height=sHeight + "px"; 
if(sWidth < 860) 
{ 
bgObj.style.width="860px"; 
} 
bgObj.style.zIndex = "10000"; 
document.body.appendChild(bgObj); 
}

Gunakan fungsi di atas untuk mengunci halaman bagi menghalang berbilang operasi sehingga kotak muat turun muncul untuk membatalkan skrin kunci.

Tetapkan kuki di bahagian pelayan (cgi):

<pre name="code" class="cpp">char *configDownloadToken = "finishedDownloadFile"; 
printf("Content-Type: application/octet-stream\nContent-Length: %ld\n", s.st_size); 
printf( "Set-Cookie:configDownloadToken=%s; path=/; \r\n ",configDownloadToken); 
printf("Content-Disposition: attachment; filename=\"%s\"\n", strrchr(filename,'/') + 1); 
printf("Connection: close\n\n");

Import pemalam jquery.cookie.js pada bahagian klien (html, js), sertakan pemalam ini dalam fail html dan dapatkan kuki dengan kerap dalam fail js

var configDownloadCheckTimer; 
$(document).ready(function () { 
configDownloadCheckTimer = window.setInterval(function() { 
var cookieValue = $.cookie('configDownloadToken'); 
if (cookieValue === "finishedDownloadFile") 
{ 
refreshPage(); 
finishDownload(); 
} 
}, 1000); 
}); 

function finishDownload() { 
window.clearInterval(configDownloadCheckTimer); 
$.removeCookie('configDownloadToken'); //clears this cookie value 
} 

Itu sahaja.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn