我已经编码了一些东西:
http://fincha.com/kunden/schmitt/
我放大.css("zoom")
但我需要按钮来模拟CTRL +或CTRL -
此代码对我不起作用:
e = jQuery.Event("keydown");
e.which = 50;
$("input").trigger(e);
请帮忙!
编辑
我实际上想要zoom-in
和zoom-out
整个网页,而不仅仅是一个输入字段。
我已经编码了一些东西:
http://fincha.com/kunden/schmitt/
我放大.css("zoom")
但我需要按钮来模拟CTRL +或CTRL -
此代码对我不起作用:
e = jQuery.Event("keydown");
e.which = 50;
$("input").trigger(e);
请帮忙!
编辑
我实际上想要zoom-in
和zoom-out
整个网页,而不仅仅是一个输入字段。
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- 因此这也可能是您的问题的一部分。
编辑:
撇开所有这些不谈,我认为您实际上无法使用 JavaScript 更改浏览器的缩放级别,即使您“发送”了键盘命令来这样做。
来源: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,但您应该能够轻松修改它。