3

我有这个 jsFiddle:http: //jsfiddle.net/RGmNz/6/

并试图禁用CTRL + BCTRL + U等...

          $("iframe").contents().find("body").keydown(function(a,b){

                if(a.which ==32 && a.ctrlKey){
                    a.preventDefault(); 
                   }
            });
        })

但它仍然使文本加粗!

4

2 回答 2

3

你需要做的是return false;使用键码的东西,我总是发现当试图禁用某些事件时,你只需要返回 false 并完全阻止一切发生。(它会为你做 preventDefault 和 stopPropogation )

也刚刚注意到这一点:关于 keycode #'s 的信息

    // you want to do 66 (B)
    // with && since you're looking for both events simultaneously

    if (a.which === 66 && a.ctrlKey) {  
       return false;
    }

jsFiddle 演示

于 2012-08-23T14:07:23.760 回答
3

如果您进行两项更改,它将起作用:(1)为 b 使用正确的键码,即 66 而不是 32,以及(2)添加对 的调用.stopPropagation()

if (a.which == 66 && a.ctrlKey) {
    a.preventDefault();
    a.stopPropagation();
}

演示:http: //jsfiddle.net/RGmNz/7/

或者你可以return false,这相当于两者.preventDefault().stopPropagation()

于 2012-08-23T14:12:54.893 回答