How to trigger key combo with jQuery

后端 未结 2 1444
难免孤独
难免孤独 2020-11-30 14:19

I have coded some stuff:

http://fincha.com/kunden/schmitt/

I zoom in with .css(\"zoom\") but I need the buttons to simulate CTRL

2条回答
  •  执念已碎
    2020-11-30 14:54

    jQuery normalizes modifier keys on events by setting one or more properties on the event object. So, you want to set event.ctrlKey to true, so this should work for you:

    e = jQuery.Event("keydown");        
    e.which = 50;
    e.ctrlKey = true;
    $("input").trigger(e);
    

    However, as per a comment at source (linked below):

    You cannot easily change values in the event object (probably for security reasons).

    So, if you're unable to set the event's properties after constructing the Event object, then you can $.extend() it to set the ctrlKey property:

    e = jQuery.Event("keydown");
    fake = $.extend({}, e, {which: 50, ctrlKey: true});
    $("input").trigger(fake);
    

    One other thing: I'm not sure if you're trying to use key code 50 for the + or the - keys. Maybe you are, and you're using a different keyboard layout, but according to this demo, 50 is the JavaScript key code for hitting 2 - so that could also be part of your problem.


    Source: comments on a jQuery API page.


    Edit:

    All this aside, I don't think you can actually change the browser's zoom level using JavaScript, even if you're "sending" the keyboard command to do so.

    Access browser's page zoom controls with javascript

提交回复
热议问题