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.
http://stackoverflow.com/questions/2578354/access-browsers-page-zoom-controls-with-javascript