Rumah >hujung hadapan web >tutorial js >Bagaimana untuk menghalang pengguna daripada melakukan operasi lain pada halaman web semasa halaman web memuat turun files_jquery
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.