jQuery нормализует клавиши-модификаторы событий, устанавливая одно или несколько свойств объекта event
.Итак, вы хотите установить event.ctrlKey
на true
, так что это должно работать для вас:
e = jQuery.Event("keydown");
e.which = 50;
e.ctrlKey = true;
$("input").trigger(e);
Однако, согласно комментарию в источнике (ссылка ниже):
Вы не можете легко изменить значения в объекте события (возможно, по соображениям безопасности).
Итак, если вы не можете установить свойства события после построения Event
объект, тогда вы можете $.extend()
установить его для свойства ctrlKey
:
e = jQuery.Event("keydown");
fake = $.extend({}, e, {which: 50, ctrlKey: true});
$("input").trigger(fake);
Еще одна вещь: я не уверен, что вы пытаетесь использовать код ключа 50
для клавиш + или - .Может быть, вы и используете другую раскладку клавиатуры, но согласно эта демонстрация , 50
- это код клавиши JavaScript для нажатия 2 - так что это также может быть частьювашей проблемы.
Источник: комментарии на странице API jQuery .
Редактировать:
Помимо всего этого, я не думаю, что вы можете на самом деле изменить уровень масштабирования браузера с помощью JavaScript, даже если вы "посылаете" команду клавиатуры для этого.
Доступ к элементам управления масштабированием страницы браузера с помощью JavaScript