[英]How to navigate to previously visited page on 'ESC' key press. Asp.net mvc(c#)
當按“ ESC”鍵時,如何導航到上次訪問的頁面。 如何使用Asp.net mvc(c#)執行此操作。 請幫忙
轉義鍵不會引起任何類型的回發,因此您將無法僅使用.net來完成。 您需要做的是使用Javascript捕獲轉義按鍵。
document.onkeydown = function(e){
if (e == null) { // ie
keycode = event.keyCode;
} else { // mozilla
keycode = e.which;
}
if(keycode == 27){ // escape, close box, esc
// Go back one page
history.back()
}
};
我認為您可以使用一些JavaScript來做到這一點。 以下鏈接將使用JavaScript歷史記錄對象在歷史記錄中導航。
<a href="javascript:history.go(-1)">返回</a>
將按鍵事件附加到文檔以監視esc鍵,然后使用歷史記錄對象。
鮑勃
您可能需要使用history.back()
在JavaScript中進行此操作。
我發現了這個問題,因為我遇到了類似的問題。 rockinthesixstring的示例在IE中效果很好,但在Firefox中效果不佳。 即使在Firefox中,alert()也可以正常工作,但history.back()則不能。 實際上,我將alert()放在了history.back()之后,但得到了警報,但沒有得到歷史記錄。 相同的代碼在回車或其他任何鍵上都可以正常工作。 在firefox中,如果您按下逃逸鍵時嘗試執行某些操作,它將繼續處理逃生鍵,然后取消您嘗試執行的操作。 最終發現我必須強制事件傳播停止,如下所示...
// Check for escape key
if (keyCode == 27)
{
// Go back in our history
history.back();
if (window.event)
{
// IE works fine anyways so this isn't really needed
e.cancelBubble = true;
e.returnValue = false;
}
else if (e.stopPropagation)
{
// In firefox, this is what keeps the escape key from canceling the history.back()
e.stopPropagation();
e.preventDefault();
}
return (false);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.