わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

Firefox拡張機能の「Make Link」は,ブックマークレットで


Firefoxのバージョンが上がって,愛用していたアドオン(拡張機能)のいくつかが使えなくなりました.その一つは,Make Linkです.ページを表示させて右クリックのあと選択をすれば,「<a href」で始まる,このページのアンカータグがコピーできたのでした.
簡単な操作で,リンク情報を取得したいと考えまして…
ブックマークレット」を思い出しました.「javascript:」で始まるコードをURLとして,あらかじめブックマークに入れておき,適用したいページ上でそのブックマークを選択すると,コードを実行してくれる機能です.
一時期,いろいろなブックマークレットを収集したり,自作もしたりしたものです.例えば朝日新聞でも読売新聞でも,トップページから,記事に進むと,表示されるURLの後ろに「?」から始まる文字列がつきますが,これは他の人に紹介するのには不要な情報です.そこで以下のコードを書き*1,「tweeze #?」という名前でブックマークしていたのでした.

javascript:(function(){location.replace(location.href.replace(/[#?].*$/,''));})();

ブックマークレットの登録の仕方については以下をご覧ください.

今回行いたいコーディングの前に,情報収集をしておきます.現在表示しているページのURLは,location.hrefで,またページのタイトルは,document.titleで,獲得できることが分かりました.JavaScriptで作成した文字列を,クリップボードに入れる方法は,見当たりませんでしたが,代わりにprompt(ラベル,文字列);により,ダイアログを開いて,コピー可能な文字列を表示できるのを知りました.
これまで取得してきた,リンクの書式には,「<a href…」のほか,はてなダイアリーの「[URL:title=タイトル]」のスタイルもあります.それと,ときどき,Markdownのリンクも使用します.
それぞれ,こんなコードになりました.

  • Make_Link
javascript:(function(){prompt('Make_Link','<a href="'+location.href+'">'+document.title+'</a>');})();
  • Make_Hatena_Link
javascript:(function(){prompt('Make_Hatena_Link','['+location.href+':title='+document.title+']');})();
javascript:(function(){prompt('Make_Markdown_Link','['+document.title+']('+location.href+')');})();

Wikiのリンクは,何通りかある上に,自分自身はこの1年,使わなかったので,必要になったときに定義するとします.
いろいろなページで,試してみました.当ブログでは,こうなります.

ダイアログが出たら,Ctrl+Cでコピーし,Escでダイアログ消去,と,マウスなしで操作できます.
なのですが,Make Linkのページ上で,上記ブックマークレットを適用すると失敗しました.F12キーによる開発ツールでコンソールを出し,「location.href」や「document.title」を調べると,問題なく表示されるのですが.
それと,獲得した文字列を単純に連結しているので,タイトルに「"」や「]」などが入っていてもそのまま出力します.これは,受け取った後に対処する必要があります.

*1:実は本日コードを手直ししたのでした.それまでは「location.href=」を使用していたのですが,それでは,「?」つきURLがブラウザの履歴に残っていて不都合なのでした.https://www.sejuku.net/blog/26999の情報が役に立ちました.