3

こんにちは、ctrl+s(save) のデフォルトの動作を防止したいので、以下のコードを試しました

jQuery(document).bind("keydown", function(e) {
  if(e.ctrlKey && (e.which == 83)) {
    e.preventDefault();
    alert("Ctrl+S");
    return false;
  }
}); 

しかし、これはFirefoxではなくChromeでのみ防止されています。Firefoxでは、保存ダイアログがポップアップしています。

4

2 に答える 2

0

以下のコードを試してください:

$(document).ready(function(){
    $(document).bind('keydown', function(event) {
      //19 for Mac Command+S
     if (!( String.fromCharCode(event.which).toLowerCase() == 's' && event.ctrlKey) && !(event.which == 19)) return true;

      event.preventDefault();
      console.log("Ctrl-s pressed");
      return false;
   });
});

JS フィドル: http://jsfiddle.net/dpHk9/

説明

以下のコードは、Unicode 番号を対応する文字に変換します。

String.fromCharCode(number) //returns A for 65

以下のコードは、コントロール キーを表します。

event.ctrlKey

MAC では、command+s19 を返します

于 2013-10-03T09:54:42.833 に答える