2012-03-01 2 views
0

私はここでこれに関するいくつかの質問を見つけましたが、解決策を見つけることはできません。私がやろうとしています何キーボードショートカットに設定されているデフォルトのアクションを取り消す

//Add keyboard shortcuts for convenience. 
self.iframe.addEventListener('keydown', function(e){ 
    //Check for alt+p and make sure were not in fullscreen 
    if(e.altKey && e.keyCode === 80 && !fullScreenApi.isFullScreen()){ 
    self.preview(); 
    } 
    //Because Macs e == 69, but alt+e == 229 which is the ´ character, 
    if(e.altKey && e.keyCode === 69 || e.keyCode === 229){ 
    e.preventDefault ? e.preventDefault() : e.returnValue = false; 
    console.log(e.returnValue); 
    if(!fullScreenApi.isFullScreen()){ 
     self.edit(); 
    } 
    } 
    //Check for alt+f 
    if(e.altKey && e.keyCode === 70){ 
    e.preventDefault ? e.preventDefault() : e.returnValue = false; 
    fullScreenApi.requestFullScreen(fsElement); 
    } 
}); 

は、現在、私はそれが何をしたいのか達成されるが、同時にダウンし、「編集」メニューを落とすのInternet Explorer 9にalt+Eのデフォルトアクションをキャンセルです。私は解決策としてe.returnValue = falseを使ってオンラインの人々を見つけましたが、それはうまくいかないようです。 console.log(e.returnValue)は未定義です。

ありがとうございます!

答えて

0

IEでこれを行う方法がない可能性が非常に高いかもしれません。私はctrl +クリックを処理するイベントハンドラを作成しようとすることに苦労していることを覚えています。残念ながら、IEでは新しいブラウザタブが生成され、その動作はブラウザにハードコードされているように見えますが、JSエンジンとは一見無関係です。

通常はpreventDefaultがトリックを行いますが、そうでない場合は、デフォルトでは予防できない場合に、IEユーザーに別のキーボードショートカットを使用できるかどうかを検討したい場合があります。

EDIT:preventDefault()と組み合わせてstopPropagation()を試してみてください。それが助けることを保証することはできませんが、それは可能性があります。

関連する問題