ズームコントロールはZoomRatio()で

Lunascapeでは他ブラウザのように文字サイズを大きくしたり小さくするだけでなく、ページ全体のズーム(拡大縮小)をコントロールすることができます。ただし、このズームコントロールには制約があります。というのも、このズーム機能はIEのレンダリングエンジンに依存しているため、スタイルシートで文字サイズがpx単位で指定されているような場合は文字サイズが変わらずレイアウトが崩れてしまいます。

任意の倍率にするためにクリックしたら倍率を入力するダイアログを表示します。前回も説明しましたが、LunascapeではJavaScriptでよく使用されるprompt()メソッドがありません。このため、prompt()の代わりにInputBox()を使います。パラメータはprompt()と同じです。

次に表示されているタブウィンドウの数だけ繰り返します。表示されているタブウィンドウの数はGetCount()で取得することができます。2つ表示されていれば2を返します。

表示倍率を制御する前に表示されているタブウィンドウのドキュメントIDを取得する必要があります。これはGetDocumentID()メソッドを使って取得します。ここで取得したIDをZoomRatio()のパラメータとして指定します。

ZoomRatio()は、そのままでは現在表示されている表示倍率値を返します。100%の倍率であれば100、200%なら200を返します。それでは、ページの倍率はどうやって設定すればよいのでしょうか。これは以下のように指定します。

Lunascape.ZoomRatio(idDocument) = 200;

このようにするとページの表示倍率が200%になります。実際のスクリプトは以下のようになります。サイドバーに登録して動作を確認しましょう。ちなみに

var per = Lunascape.InputBox("倍率を入れてください", 100);

の部分を

var per = 100;

に変更すれば表示されているタブウィンドウをまとめて100%の表示倍率に戻すことができます。

図4 標準の状態

図5 倍率を入力する

図6 入力したい倍率でページが表示される

図7 他のタブウィンドウのページも指定した倍率で表示される

図8 他のタブウィンドウのページも指定した倍率で表示される

図9 他のタブウィンドウのページも指定した倍率で表示される

スクリプト001

function OnClick(){
    // 任意の表示倍率にする
    var per = Lunascape.InputBox("倍率を入れてください", 100);
    for(var i=0; i<Lunascape.GetCount(); i++){
        var idDocument = Lunascape.GetDocumentID(i);
        Lunascape.ZoomRatio(idDocument) = per;
    }
}