2013-10-24 98 views
0

我正在進行在線考試。考試本身在一個彈出窗口中(以避免打開新的研究標籤)。問題出在彈出窗口中。當我重新加載時(突出顯示地址欄中的地址並按回車鍵),我的計時器重置,其他數據也會改變。有沒有辦法避免重新加載彈出窗口?PopUp窗口地址欄

+0

很多信息都缺失以幫助您。 爲什麼要重新加載頁面?是故意的還是意外的?當你談到彈出窗口時,你的意思是沒有地址欄的瀏覽器窗口? – AndreaBogazzi

+0

是的,先生。可能嗎?或者有沒有一種方法可以避免在地址欄中點擊/突出顯示地址。故意的。 – eirishainjel

+0

無法停止用戶刷新頁面。如果你只關心數據丟失,你可以在cookie/session中存儲一些數據。 – lastr2d2

回答

0

由於從@Murali答案我會建議:

window.onbeforeunload = function() { 
return confirm('Do you really whant to add +1 to you reset counter and -1 to your final exam evaluation?' }; 

然後,如果你正在使用PHP(任何其他服務器語言仍然適用):

<?php 
// in your popup page // 
session_start(); 
if(!isset($_SESSION["load_count"])){ 
    $_SESSION["load_count"]=0; 
} else { 
    $_SESSION["load_count"]+=1; 
} 
?> 

...

在HTML部分

<?php echo "you currently reloaded the page ".$_SESSION["load_count"]." times"; ?> 

它不會阻止他們刷新,但有總比沒有好。

你還可以嘗試:

window.onbeforeunload = function() { return false; }; 

但要記住,如果學生是正常的人,他們可以使用瀏覽器控制檯,並通過自身終止任何JavaScript。

因此,如果你的計時器邏輯是在JavaScript中,你是不是完全安全。

+0

我明白了。第一個建議有點不錯,我想我會運用它。非常感謝你的幫助。 :) – eirishainjel

0

您可以讓用戶確認使用onbeforeunload event重新加載。但我不認爲你可以阻止瀏覽器內置的功能

嘗試

window.onbeforeunload = function() { return confirm('Are you sure?' };