ブックマークレット

LunascapeではInternet Explorer用に作成されたブックマークレットはそのまま使用することができます。
ブックマークレットをお気に入りに登録すると、お気に入りをクリックした時点でブックマークレットが起動するようになります。
ブックマークレットを「設定」サイドバーの「機能」の中に入れると、アドレスバーの右にあるボタンから選択できるようになります。
ブックマークレットの作成については以下のHPが参考になります。

サンプル


Lunascapeにデフォルトで登録されている「行間を広げる」というブックマークレットを使って簡単に解説します。

「行間を広げる」のソースは以下のようになっています(読みやすいように改行&インデントしていますが、実際にLunascapeに登録するときは一行である必要があります)。

1: javascript: 2: void( 3: document.body.style.lineHeight='2em' 4: )

1行目:ブックマークレットであるという宣言です
2行目:ブックマークレットは値を返してはいけないので、void()で囲みます
3行目:JavaScriptからスタイルシートを操作して、lineHeightの値を2emに設定しています

いかがでしょう?
次に、もう少し複雑な例として「リンクをURLで表示」というブックマークレットを使って簡単に解説します。
「リンクをURLで表示」のソースは以下のようになっています。

01: javascript:( 02: function(){ 03: var i,c,x,h; 04: for(i=0;x=document.links[i];++i) { 05: h=x.getAttribute("href"); 06: x.title+=" " + x.innerHTML; 07: while(c=x.firstChild)x.removeChild(c); 08: x.appendChild(document.createTextNode(h)); 09: } 10: } 11: )()

1行目:ブックマークレットであるという宣言です
2行目:ブックマークレットで使用する変数をローカル変数とするために、無名ファンクションのインスタンスを作成しています(ref.http://www.teria.com/~koseki/memo/bookmarklets/tips.html)
3行目:変数の宣言をしています
4行目:ページ内のリンクをループさせるfor文になります。linksオブジェクトを変数xに代入しています
5行目:aエレメントの中のhrefアトリビュートの値を取得して、変数hに代入しています
6行目:aエレメントのtitleアトリビュートにリンク文字列を追加しています
7行目:linksオブジェクトの中の文字列を削除しています ref.http://www.tonbi.jp/JS/Diary/017.html
8行目:削除した文字列に変わり、5行目で代入したhrefアトリビュートの値をセットしています
11行目:2行目で作成した無名ファンクションを呼び出しています

いかがでしょうか? 7行目と8行目はDOMというものを使っていますが、それ以外は特に難しいことは無いと思います。
Lunascapeの「設定」サイドバーの「機能」の中には多数のブックマークレットが登録されています。これらも参考になるでしょう。

Comments