7

私はいくつかのものをコーディングしました:

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

でズームインし.css("zoom")ますが、シミュレートするためのボタンが必要ですCTRL +CTRL -

このコードは私には機能しません:

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

助けてください!

編集

私は実際に、入力フィールドだけでなく、Webページ全体を望んzoom-inでいました。zoom-out

4

2 に答える 2

11

jQuery は、オブジェクトに 1 つ以上のプロパティを設定することで、イベントの修飾キーを正規化し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);

もう 1 つ:またはキーにキー コード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 に答える