2011-07-15 15 views
4

ウェブアプリ内のコンテンツのレンダリングサイズを増減できるようにしたいと考えています。FirefoxとChromeでJavascriptを使用してCtrl + Ctrlキーを押しながら

CTRL+CTRL- クロム&のFirefoxの(を通して、またはCTRL CTRL機能は便利です - しかしにJavaScriptから方法がありますこれらの機能を実行しますか?

明確化: 私は、ユーザーがマウスクリックではなく、キー入力を経由してこれを達成することができるようにしたいので、このような何か:

function resize_rendering() { 
    // code that executes ctrl+ or crtl- 
} 
+1

私はあなたがブラウザ内での個人設定以来、ブラウザの機能を模倣することができると思いますいけません。 CTRL +/-は、実際には画像のすべての部分をズームインします。 javascriptでこれを行うには、サイトのイメージとテキストのサイズを大きくする必要があります。私が見たことは、ジャバスクリプトを使ってフォントサイズを増やす人だけですが、イメージはありません。 –

答えて

3

ブラウザのズームレベルはユーザーの設定です。これはアクセスのためです。サイトの開発者がズームレベルが何であるかを知り、気にすることを目的としたものではありませんので、あなたが望むものを正確に行うことができないと思います。間違いなく、クロスブラウザーで動作するようにするのは難しいでしょう。

これに対する通常のアプローチは、ベースフォントサイズを変更するサイジングガジェットを使用することです。

サイト内のフォントサイズがすべてem単位である場合は、CSSの変更を1回加えてサイトのすべてのテキストのサイズを変更できます。

だからあなたがクリックした要素に応じて、(例えば)12、14、16または18ピクセルに<body>要素のfont-sizeを設定するにはJavascriptを使用してサイト上のボタンのセットを持っているでしょう。

ここでは技術の書き込みアップがあります:http://labnol.blogspot.com/2006/12/allow-site-visitors-to-change-font.html

+0

これは私が想像したものです。ありがとう:( – OneNerd

0

このライブラリhereジョンResig氏によっては、jQueryのプラグインです仕事をしなければならない。いくつかのサンプルがあります。キーの組み合わせも非常に簡単です。

0

あなたは、(そのようwindowオブジェクトのような)一般的なキーイベントハンドラ内でキーストロークを傍受し、それはあなたが探しているものかどうかを確認し、そうであれば、イベントパラメータ(およびリターンにstopPropagation()を呼び出すことができますfalse)を使用して、ブラウザがそれ自身でそれを処理しないようにします。

JavaScriptを使用してスタイルシートを変更するなど、サイジング操作を自分で実行する必要があります。

window.addEventListener('keydown', function(e) { 
    if (/* check e.keyCode etc. */) { 
     // modify global style to increase/decrease font size 
     e.stopPropagation(); 
     return false; 
    }); 
+0

私は実際に、ユーザーがキー押下(おそらく、スライダなど)を使用しなくても、これを行う方法を探しています。 – OneNerd

+0

申し訳ありませんが、誤解されています。私が示唆したようにベーススタイルシートを修正するウェブページ上のコントロールを使用してそれを行うことは確かに可能です。しかし、実際にブラウザのネイティブ機能を呼び出すことが可能かどうかはわかりません。 – devios1

+0

あなたは誤解していない、それは私のせいだった。私は私の質問を再読したが、それはあいまいだったので、私は説明を加えた。しかし、答えをありがとう。 – OneNerd

1

デザインによって許可されていません。 Javascriptでユーザーのブラウザ設定を変更することはできません。

あなたのページのCSSをすべて修正してCTRL-をシミュレートすることができますが、それだけです。

一部のブラウザでは、ブラウザの前にCTRL +/-をキャプチャして、これらのイベントが発生するのを防ぐことができます。しかし、あなたはoppisiteをすることはできません - あなた自身のスクリプトからイベントを発生させることはできません。

関連する問題