タブの文字色を変更

先ほどのスクリプトチェックでは調べたいページをアクティブにしなければならず、タブウィンドウが複数ある場合には不便です。そこで、少し改良して表示されているタブウィンドウ内のscriptの数を調べるようにします。また、ダイアログで結果を表示するのではなく、表示されているタブの文字の色を変更することで、一目で結果がわかるようにします。

scriptタグの数を調べるところまでは、これまでの解説でわかると思います。問題はタブの文字の色を変更する方法です。Lunascapeでタブの文字色を変更するにはFontColor()メソッドにカラー値を設定します。このカラー値ですが、パラメータとして指定するのではない点に注意してください。以下のように代入形式で指定しなければいけません。

Lunascape.FontColor(idDocument) = 0x0000ff;

また、設定するカラー値ですがWebの背景色指定で多く見られるRRGGBBの赤、緑、青の順番ではなくBBGGRRという青、緑、赤の順番になっている点にも注意が必要です。赤色であれば0x0000ff、青色であれば0xff0000を指定しなければいけません。

実際のスクリプトは003になります。いくつかページを開いてから実行させてみてください。タブの文字色が赤色になればscriptタグがページ内に埋め込まれています。そうでないページのタブは黒色になります。

図9 チェックする前の状態

図10 scriptタグの有無によってタブの文字色が変わる

スクリプト003

function OnClick(){
    // スクリプトが使われていればタブの文字色を赤にする
    for(var i=0; i<Lunascape.GetCount(); i++){
        var idDocument = Lunascape.GetDocumentID(i);
        var doc = Lunascape.GetDocumentObject(idDocument);
        var scriptTag = doc.getElementsByTagName("script");
        if (scriptTag.length > 0){
            Lunascape.FontColor(idDocument) = 0x0000ff;
        }else{
            Lunascape.FontColor(idDocument) = 0x000000;
        }
    }
}

最後にタブの文字色を黒色に戻すスクリプトも載せておきます。

スクリプト004

function OnClick(){
    // すべてのタブの文字色を黒にする
    for(var i=0; i<Lunascape.GetCount(); i++){
        var idDocument = Lunascape.GetDocumentID(i);
        Lunascape.FontColor(idDocument) = 0x000000;
    }
}