jQuery normalizes event modifier keys by setting one or more properties of 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, according to the comment in the source (see below):
You cannot easily change values ββin an event object (possibly for security reasons).
So, if you cannot set the event properties after creating the event object, you can $.extend() set its ctrlKey property:
e = jQuery.Event("keydown"); fake = $.extend({}, e, {which: 50, ctrlKey: true}); $("input").trigger(fake);
One more thing: I'm not sure if you are trying to use key code 50 for the + or - keys. Maybe you are using a different keyboard layout, but according to this demo , 50 is the JavaScript key code for pressing 2 - so this could also be part of your problem.
Source: comments on jQuery API page .
Edit:
All this aside, I donβt think you can really change the zoom level of the browser using JavaScript, even if you βsendβ a keyboard command for this.
Access browser page zoom controls using javascript
source share