2013-07-31 15 views
3

我正在研究一個評估系統,在哪個候選人嘗試參加考試。因此,呈現問題及其選擇的頁面是iframe的頁面,其中問題是獲取呈現。包含iframe的頁面包含JavaScript定時器。限制用戶刷新並返回,在任何瀏覽器中轉發

因此,當問題在瀏覽器上呈現限制刷新時,我寫了F5ctrl+F5阻止代碼,因此候選人無法使用鍵盤快捷鍵進行刷新,但在瀏覽器窗口中,仍然可以使用刷新按鈕或後退按鈕。有什麼辦法可以禁用它嗎?我知道玩瀏覽器功能並不是很好的做法,那麼有沒有什麼辦法可以擺脫這種困擾。

+0

您可以訪問這個。 http://stackoverflow.com/questions/8078650/can-we-disable-browsers-buttonsback-forward-refresh-by-javascript –

+0

@BindiyaPatoliya任何替代... – Amogh

+0

不,我沒有任何alternative.Sorry :) –

回答

-1

document.ready我加入這行..

window.history.forward(-1)

+0

它不在鉻瀏覽器中工作。如果可以的話再提供demo(jsfiddle) –

9

試試這個來禁用後退按鈕。

<script type="text/javascript"> 
     window.history.forward(); 
     function noBack() { window.history.forward(); } 
    </script> 
    </head> 
    <body onload="noBack();" 
    onpageshow="if (event.persisted) noBack();" onunload=""> 

或者,我們可以從工具欄中刪除這些

window.open ("URL", 
"mywindow","status=1,toolbar=0"); 
0

你可以試試這個...: -

window.open ("http://viralpatel.net/blogs/", 
"mywindow","status=1,toolbar=0"); 

這將打開工具欄沒有一個窗口... NO工具欄沒有按鈕..:D

+0

很容易挫敗在Chrome瀏覽器http://i.imgur.com/wvzX9xU.png –

+0

@sankalp米什拉如果我們使用你說的方式,然後在mozilla它要求的權限打開一個新的彈出窗口。如果允許,那麼只有其開放 – 2013-08-01 05:27:41

0

試試這個:

function disableF5(e) { if ((e.which || e.keyCode) == 116) e.preventDefault(); }; 
0
bool IsPageRefresh = false; 

//this section of code checks if the page postback is due to genuine submit by user or by pressing "refresh" 

if (!IsPostBack) 
{ 
    ViewState["ViewStateId"] = System.Guid.NewGuid().ToString(); 
    Session["SessionId"] = ViewState["ViewStateId"].ToString(); 
} 
else 
{ 
    if (ViewState["ViewStateId"].ToString() != Session["SessionId"].ToString()) 
    { 
     IsPageRefresh = true; 
    } 
    Session["SessionId"] = System.Guid.NewGuid().ToString(); 
    ViewState["ViewStateId"] = Session["SessionId"].ToString(); 
}  
3

請嘗試一下本作中的所有最新的瀏覽器限制後退按鈕。

history.pushState({ page: 1 }, "Title 1", "#no-back"); 
window.onhashchange = function (event) { 
    window.location.hash = "no-back"; 
}; 
1
history.pushState(null, null, document.URL); 
window.addEventListener('popstate', function() { 
    history.pushState(null, null, document.URL); 
}); 
+0

這樣可以防止瀏覽器返回 –

+0

歡迎使用堆棧溢出:-) 請看[答]。您應該提供一些信息,說明爲什麼您的代碼可以解決問題。 僅有代碼的答案對社區沒有用處。 – JimHawkins

+1

雖然此代碼片段可能會解決問題,但[包括解釋](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。也請儘量不要用解釋性註釋來擠佔代碼,這會降低代碼和解釋的可讀性! –

0

這是不可能的。如果不希望人們通過「返回」來查看舊頁面,則禁用緩存,但他們看到的所有內容都是他們剛剛看到的內容,因此不會產生任何影響。人們一直在問20年如何禁用後退按鈕,到目前爲止,我從來沒有看到後退按鈕被禁用的網站。

但這裏是一招

感謝

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";}