0

Alt+b をバインドして何かを行う次のコードがあります。

(function(jQuery){
    $(document).ready(function() {
       $(document).bind('keydown', 'alt+b', function(event) {
        // do stuff
        event.preventDefault();
      });
    });
})( jQuery );

PC で Safari ブラウザ (v5.0.4) を使用すると、メニューが表示されます (ブックマーク)。この動作を防ぐ方法はありますか? この場合、preventDefault は Chrome と Firefox で機能します。「falseを返す」ことも試みましたが、どちらも機能しません。

注: 初めてメニューを表示するまで、私のコードは機能しているようです。その後、 Alt+b は、メニューが非表示になっていてもブックマークを表示するようにトリガーします。

4

2 に答える 2

0

私はあなたのバージョンのSafariを持っていません(私はテストできませんでした)が、これを試してみることができますhttp://jsfiddle.net/LnvGR/2/

(function(jQuery){
   var keys = {};
$(document).keydown(function (e) {
    keys[e.which] = true;

    var kValues = '';
      for (var i in keys) {
          if (!keys.hasOwnProperty(i)) continue;
          kValues += i;
      }

     if (kValues == "1866" || kValues == "6618")
     {
         e.preventDefault();
         return false;
     }
});

$(document).keyup(function (e) {
    delete keys[e.which];
});

})( jQuery );

すべてのキーを読み取り、組み合わせを確認して、preventDefault();を呼び出します。

于 2011-03-30T08:34:08.543 に答える
0

これを試して:

(function(jQuery){
    $(document).ready(function() {
       $(document).bind('keydown', function(e) {
        if(e.keyCode==66){
          // do stuff
          e.preventDefault();
        }
      });
    });
})( jQuery );

サファリでテストされ、ブックマークをトリガーしません。

于 2011-03-30T08:23:56.650 に答える