How to completly disable back button of a browser while taking online exam?

While you can prevent the back button, you can't prevent the user from disabling JS while he takes the exam. This makes JS approaches practically useless.

Assuming that previous pages are questionaires, I suggest that once the user moves away from the page, any further access to that page will be invalid. This can easily be done using a server-side language and a database to track pages visited by the user.

Do note that some browsers do a "refresh" on the previous page when doing a back, while others load them from the cache. The latter will make the page still accessible even if you marked it inaccessible on the server. What you can further do is to invalidate any action taken on that page once it has been deemed invalid for access. That way, even if the user had a copy of that page, he can't do anything with it.

Besides, it's an exam, and JS is a bad place to put some exam logic as it can easily be inspected and modified. You should leave everything on the server instead.


Try with the below code. This code tested with latest Chrome and Firefox browsers.

<script type="text/javascript">
    history.pushState(null, null, location.href);
    history.back();
    history.forward();
    window.onpopstate = function () { history.go(1); };
</script>

Try this script

<script>
window.location.hash="no-back-button";
window.location.hash="Again-No-back-button";//again because google chrome don't insert first hash into history
window.onhashchange=function(){window.location.hash="no-back-button";}
</script> 

Also refer this link. This link contain demo & Download code