簡體   English   中英

如何在“ ESC”鍵上導航到先前訪問的頁面。 ASP.NET MVC(C#)

[英]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.

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