需求分析過程中 專案裡可能需要的技術點記錄

SieSteven發表於2015-11-16

1、登入頁面中要求的驗證碼生成。公司現有專案中沒有驗證碼生成的模組。

2、js記錄頁面中時間。js記錄: 每道題做題時間,正答率情況,是否看提示,是否看答案。並且需要

2.1  連結http://blog.csdn.net/linda15123/article/details/7904381


3、捕獲頁面關閉事件

摘抄的點:

A 純粹js實現<script type="text/javascript">
window.onbeforeunload = onbeforeunload_handler;
window.onunload = onunload_handler;
function onbeforeunload_handler(){
var warning="確認退出?";
return warning;
}

function onunload_handler(){
var warning="謝謝光臨";
alert(warning);
}
</script>
window.onbeforeunload = onbeforeunload_handler;
window.onunload = onunload_handler;
這兩種都可以捕獲視窗關閉事件,window.onbeforeunload 在window.onunload之前執行


B 處理BGU

                     當我們離開一個網頁時,往往需要提醒使用者自己的這一行為,比如我正在編輯一個文件,或者我是在使用網上銀行,我希望在自己操作失誤之後能給我一次改正的機會。這裡說道的離開一個網頁,其實分為好幾種情況:重新整理 關閉 後退
我們經常用到頁面關閉事件onbeforeunload,可以給使用者一個選擇放棄關閉的機會,就比如這個部落格編輯器。如果使用者選擇了離開,那麼onunload事件自然會觸發;但若使用者選擇了取消(或者是留在此頁),又該如何檢測呢?

window.onbeforeunload = function()
{
return "真的離開?";
}
當使用者準備離開頁面(比如按下關閉按鈕,或者重新整理頁面等等),onbeforeunload事件觸發。我們的指令碼無法在這個事件裡決定是否阻止頁面的關閉,唯一能做到的只有返回一個字串,這個字串僅作為說明文字出現在關閉選擇對話方塊裡,使用者可以選擇關閉,或者不關閉。但究竟選擇哪個,我們無從得知。

然而仔細分析下這個問題,其實不然。 如果使用者真選擇了關閉頁面,那麼之後所有的執行程式碼都沒用了;而繼續留在頁面的話,就當什麼都沒發生過,除了onbeforeunload事件。所以,我們在onbeforeunload事件裡做點改動,在此註冊個幾毫秒之後啟動的定時器,如果頁面真關閉了,那麼這個定時器當然是作廢了;那麼頁面還在,幾毫秒的延時對於這個本來就是非同步的介面互動事件也沒有什麼誤差。
<script language="JavaScript">
window.onbeforeunload = function()
{
setTimeout(onunloadcancel, 10);
return "真的離開?";
}

window.onunloadcancel = function()
{
alert("取消離開");
}
</script>
我們使用setTimeout,延時10ms執行onunloadcancel。如果頁面真關閉了,定時器當然都銷燬;反之繼續。但在測試中,發現FireFox有個兩個BUG:
有時按下關閉按鈕,也會執行onunloadcancel,並且有個對話方塊一閃而過。如果換成while(1);瀏覽器會一直卡死,這說明onunloadcancel確實是執行了,只是銷燬了介面,但並沒有暫停指令碼的執行。
如果是通過重新整理頁面的方式離開,僅執行一次onbeforeunload,但點選X按鈕關閉頁面,會執行兩次onbeforeunload。因此我們還需在完善下,以便相容FF。


<script language="JavaScript">
var _t;
window.onbeforeunload = function()
{
setTimeout(function(){_t = setTimeout(onunloadcancel, 0)}, 0);
return "真的離開?";
}


window.onunloadcancel = function()
{
clearTimeout(_t);
alert("取消離開");
}
</script>

這裡使用了一種我也說不出原因的辦法,解決了FF下的bug。


C BODY 中進行操作

.用onUnload方法 
在body 標籤里加入onUnload事件 
body onUnload="myClose()" 
然後在javascript裡定義myClose()方法 
但是onUnload方法是在關閉視窗之後執行,不是在關閉視窗之前執行,如果你想在關閉視窗之前做判斷,請用第一種方法 




相關文章