0

これが私のコードです:

$(document).keyup(function (e) {
    alert("felt something!");
    if (e.keyCode == 44) {
        alert("felt PS");
        ccd();
    }
});

function ccd() {
    if (clipboardData) {
        window.clipboardData.setData('text', '');
    }
}

Chromeでは、ccd関数は何もしませんが(これは問題ありません)、PSボタンを押すたびに「FeltPS」というメッセージがポップアップ表示されます。ただし、IE(7-9)では、「FeltPS」メッセージを1つ表示できます。その後、PSを押しても何も起こりませんが、他のキーを押すと「何かを感じました!」と表示されます。

誰かがこの問題を引き起こしている可能性のあるアイデアを持っていますか?

4

2 に答える 2

3

e古いバージョンの IE はグローバルwindow.eventオブジェクトを使用するため、IE の場合は注意が必要です。代わりに次のコードを試してください。

$(document).keyup(function (e) {
    if(!e) e = window.event; //check for e, otherwise use the global window.event
    var keyCode = e.which || e.keyCode //changed as not all browsers use keyCode
    alert("felt something!");
    if (keyCode  == 44) {
        alert("felt PS");
        ccd();
    }
});

function ccd() {
    if(window.clipboardData) { //changed to look for window.clipboardData instead otherwise throws an error in other browsers.
        window.clipboardData.setData('text', '');
    }
}

コードを変更した上記のコメント行に注意してください。

更新

イベントをそのキーに登録するには、ALT + PRINT SCREEN を押さなければならない可能性があります。現時点では理由が 100% わからないので、他の誰かがたまたま知っている場合は、回答を編集するか、コメントに残してください。

**改訂されたコードにも注意してください。

于 2012-12-05T21:51:32.800 に答える