Firefoxでも同じページを表示する

Webサイトの中には特定のブラウザでないと機能しないところもあります。Lunascape 4はIEと同じレンダリングエンジンを使用しているので大きな問題はありません。しかし、Webサイトを制作している場合にはIEだけでなくFirefoxなどでもページがどのように表示されるかを確認したい場合があります。

Lunascape 5ではIEのレンダリングエンジンだけでなくFirefoxが使用しているGeckoエンジン、そしてSafariやGoogle Chromeが使用しているWebKitの表示をメニューから切り替えることができます。Lunascape 5でなくLunascape 4では、確認のためいちいちFirefoxに切り替えて確認しなければならず面倒です。Lunascape 5にバージョンアップするのが一番簡単ですが、ここでは、現在表示されているタブウィンドウのページをFirefoxで表示するスクリプトを作成してみます。

まず、アクティブになっているタブウィンドウのインデックス番号を取得します。これはActiveIndex()メソッドで取得することができます。もし、タブウィンドウが1つも表示されていない場合、ActiveIndex()は-1を返します。つまり、-1でない場合のみ処理を行います。また、最初のスクリプトで使用したGetCount()を使って表示されているタブウィンドウの数が1以上であれば処理する方法もあります。

現在表示されているタブウィンドウのURLはLunascape.URLで取得することができます。問題は、このURLをどうやってFirefoxに渡すか、ということです。これはWindowsに搭載されているWSH (Windows Scripting Host) を利用します。WSHにはShellメソッドがありコマンドラインから命令を入力したのと同じように処理することができます。このShellを使うには以下のようにします。

var shell = WScript.CreateObject("WScript.Shell");

これでshellオブジェクトが作成され、コマンドの実行メソッドであるRun()を使用することができるようになります。なお、Runメソッドについての詳細は以下のページを参照してください。

Microsoft WSH:Runメソッド

Run()メソッドは最初のパラメータに実行するアプリケーションのパスとパラメータ(URL)、2番目には表示方法、3番目はコマンドの処理が終わるまで待つかどうかを指定します。Firefoxを手前に表示するには2番目のパラメータを1にします。3番目のパラメータはfalseにすると、Firefoxの起動を待つことなく処理を継続することができます。

あとはスクリプトをサイドバーに登録して動作を確認しましょう。うまく動作しない場合はスクリプトの設定で「旧形式のスクリプトとして実行する」にチェックを入れてみてください。

図10 Firefoxで表示したいページを表示してからスクリプトを実行すると

図11 Firefoxが起動しページが表示される

スクリプト002

// アクティブタブをFirefoxで開く
var fxPath = "C:\\Program Files\\Mozilla Firefox\\FIREFOX.EXE";
var Lunascape = new ActiveXObject("Lunascape2.LunascapeAPI");
var ActiveTab = Lunascape.ActiveIndex();
if(ActiveTab != -1){
    var shell = WScript.CreateObject("WScript.Shell");
    shell.Run("\"" + fxPath + "\" " + Lunascape.URL, 1, false);
}