7

我已经编码了一些东西:

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

我放大.css("zoom")但我需要按钮来模拟CTRL +CTRL -

这段代码对我不起作用:

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

请帮忙!

编辑

我实际上想要整个网页,而不仅仅是一个输入字段zoom-inzoom-out

4

2 回答 2

11

eventjQuery 通过在对象上设置一个或多个属性来规范化事件的修饰键。所以,你想设置event.ctrlKeytrue,所以这应该适合你:

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键码。也许您是,并且您正在使用不同的键盘布局,但根据这个演示,是用于点击的 JavaScript 键代码- 所以这也可能是您的问题的一部分。+-502


来源:jQuery API 页面上的评论


编辑:

除了所有这些,我认为您实际上不能使用 JavaScript 更改浏览器的缩放级别,即使您正在“发送”键盘命令来这样做。

使用 javascript 访问浏览器的页面缩放控件

于 2010-10-08T21:48:33.917 回答
1

来源:http ://www.scottklarr.com/topic/126/how-to-create-ctrl-key-shortcuts-in-javascript/

var isCtrl = false;

$(document).keyup(function (e) {
    if(e.which == 17) isCtrl=false;
}).keydown(function (e) {
    if(e.which == 17) isCtrl=true;
    if(e.which == 83 && isCtrl == true) {
        //run code for CTRL+S -- ie, save!
        return false;
    }
});

这是针对 Ctrl+s 的,但您应该能够轻松地对其进行修改。

于 2010-10-08T18:50:31.127 回答