2011-01-17 9 views

答えて

6

エスケープキーではポストバックが発生しないため、.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() 
      } 
     }; 
1

私はあなたが少しのJavaScriptでこれを行うことができると思います。次のリンクは、JavaScript履歴オブジェクトを使用して履歴内をナビゲートします。

<のhref =「javascriptの:history.go(-1)」>は/ <戻る>

は、ESCキーを監視する文書に、キープレスイベントを添付して、履歴オブジェクトを使用します。

ボブ

0

あなたはhistory.back()を使用して、JavaScriptでこれを実行する必要があります。

0

私はこの問題を発見しました。私は同様の問題を抱えていました。 rockinthesixstringの例はIEではうまく動作しますが、Firefoxではうまく動作しません。 alert()はFirefoxでもうまく動作しますが、history.back()では動作しません。実際、私はhistory.back()の後にalert()を置いて、私の警告は受け取りましたが、私の履歴はありません。同じコードが入力キーやその他のキーで正常に機能しました。 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); 
} 
関連する問題