【ハウツー】
今回はWebサイト制作時に便利な拡張スクリプトを作成します。Lunascapeの拡張スクリプトはタブウィンドウに表示されているページ内容にアクセスできます。そこで、ページ内のリンクのプロトコル(http, ftp, mailto, file)をチェックするスクリプトを作成してみます。
Lunascapeの拡張スクリプト作成の環境構築はこちらの記事をご覧ください
Lunascapeではタブウィンドウ内に表示されている内容に関してはDOM関連の命令を使って操作できるというのは前回説明しました。拡張スクリプトではページ内容の読み出しだけでなく、改変することも可能です。このため、file:で始まるリンク先があればスタイルシートを変更して分かりやすくハイライトすることもできます。また、ページ内にあるすべてのリンクをピックアップしてクリップボードにコピーすることもできます。これはマイクロソフトのJScriptがサポートしている範囲であれば、ほとんどのものが動作すると言えます。
ページ内容を自由に操作できるというのはセキュリティ面で注意しなければならないこともありますが、拡張スクリプトを自作し自分で使用する範囲であれば問題はないでしょう。Web上で配布されている拡張スクリプトで怪しいものは使わないようにしましょう。
最初にfile:で始まるリンクがあるかどうか調べます。表示されているページのドキュメント情報を取得する部分に関しては前回の説明を参照してください。リンクはaタグのhref属性に書かれています。これはgetElementsByTagName("a")で取得したaタグのhref属性を読み出せばよいことになります。file:の文字列があるかどうか調べるにはindexOf()を使います。
パラメータに調べたい文字列を指定します。今回は"file:"を指定します。indexOf()には2番目のパラメータもあり、これは文字列の検索開始位置を指定します。省略すると文字列の先頭から検索を行います。文字列が見つかれば文字列の最初の位置をインデックス番号で返します。文字列が見つからなければ-1を返します。
以下のスクリプト001ではfile:で始まるリンクの個数をカウントし、ダイアログに表示します。
function OnClick(){
// リンクのプロトコルをチェック
var idDocument = Lunascape.GetDocumentID(Lunascape.ActiveIndex);
var doc = Lunascape.GetDocumentObject(idDocument);
var aTag = doc.getElementsByTagName("a");
var count = 0;
for(var i=0; i<aTag.length; i++){
if (aTag[i].href.indexOf("file:") > -1){
count = count + 1;
}
}
if (count > 0){
Lunascape.MessageBox("file:で始まるリンクが"+count+"個ありました");
}else{
Lunascape.MessageBox("file:で始まるリンクはありませんでした");
}
}
| レノボ・ジャパン、ウェブ広告モデルを一般公募 - 新生活キャンペーンの一環で [21:21 2/10] |
| 【レポート】スマートフォンを狙ったワンクリック詐欺やオンラインバンキングを狙うゼットボット - トレンドマイクロマンスリーレポート [20:43 2/10] |
| 【レポート】レノボ、大和研究所の開発陣らによる「ThinkPad X1 Hybrid」の技術解説 [20:41 2/10] |
| デル、「冬モデルファイナルセール」最終週 - 各種アップグレードが無料 [20:13 2/10] |
| Appleが3月初旬にスペシャルイベント開催の噂 - iPad 3の発表か [18:34 2/10] |
|
【女性編】バレンタインチョコをあげたい芸能人ランキング [15:00 2/11] ライフ |
|
【男性編】バレンタインチョコをもらいたい芸能人ランキング [15:00 2/11] ライフ |
|
倉薗紀彦、田舎での友情物語「彗星★少年団」発売サイン会 [14:46 2/11] ホビー |
|
[成宮寛貴]ギザギザ頭 のかつらは「やばかった」 映画「逆転裁判」公開 [14:30 2/11] エンタメ |
|
「オレのチキンを食べたのは誰だ!」ナイフを持った男が暴れる [14:06 2/11] キャリア |