簡體   English   中英

防止用戶在參加測驗的應用程序中重新加載/刷新頁面的方法

[英]Ways to prevent user from reloading/refreshing page in quiz taking application

我目前正在嘗試找出一種策略,不允許用戶在測驗中刷新/重新加載頁面。 我知道完全禁用瀏覽器中的重新加載功能不是一個好主意,甚至不可能,但是還有其他方法可以阻止用戶通過重新加載頁面來重新啟動考試嗎?

我目前在瀏覽器窗口中未顯示“后退”按鈕,並且不允許輸入URL。 我知道我可以通過右鍵單擊鼠標禁用上下文菜單,但是仍然允許使用鍵盤快捷方式重新加載頁面。 關於如何處理此問題的任何想法?

編輯

我應該將其更改為意味着我實際上並沒有嘗試禁用瀏覽器重新加載功能,而是,如果用戶確實嘗試重新加載瀏覽器,我希望將它們重定向以便測試結束或發生其他事件,而不是測試重新開始。

當前,我正在使用localStorage變量來指示它是否正在重新加載並從那里開始。 這是最好的解決方案嗎?

謝謝!

如果您嘗試僅使用客戶端技術(javascript)保護Web應用程序,則將面臨一場艱苦的,不可戰勝的戰斗。 總有一些方法可以解決您要采取的措施。

一個可行的解決方案是在每個用戶做出決定后在服務器端跟蹤測驗進度。 這樣,如果用戶嘗試重新加載(或以其他方式重新開始,重新回答或跳過),則只需將它們返回到其所屬位置即可。

我可以想到一種檢測頁面是否刷新的解決方案。

如果您使用的是PHP,則可以在加載時設置SESSION變量,然后檢查該變量是否已設置

    <?php
       if(!isset$_SESSION['loaded'])
       {
          $_SESSION['loaded'] = 1;
       }
       else
       {
           echo 'You refreshed, your quiz is over ;-) ';
       }
    ?>

至於禁用刷新,您將不得不依靠惡意軟件來實現它,即。 從JavaScript中過濾掉所有鍵盤輸入以“ F5”鍵或“ Ctrl + R”,並在輸入這些快捷方式時忽略鍵盤輸入。 我不確定這是否可行/符合道德規范

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM