既にブックマークしていたら色が変わるボタン

現在のページがブックマークされているかどうかでアイコンが変わるボタンを作れることがわかった。

未ブックマーク状態。

既ブックマーク状態。

id:higeorangeさんの言っていたのはこういうことだったのか。


挙動は、未ブックマーク時は「ブックマークに追加」ダイアログを出し、既ブックマーク時はサイドバーのブックマークパネルを開いて、現在のページをハイライト

インストールする方法は、下の文字列をアドレス欄に貼り付けて、出てきたものを好きなツールバーにドラッグ&ドロップ。(はてなダイアリーだとボタンを付けることができないための措置です)

data:text/html;charset=utf-8,<a href='opera:/button/Highlight bookmark, , , "Already bookmarked!", "Highlight bookmark" | Add to bookmarks, , , "No bookmark!", "Missing bookmark"'>Star</a>

他にも

ボタン長押しでブックマークメニューが出るようにする。

data:text/html;charset=utf-8,<a href='opera:/button/Highlight bookmark, , , "Already bookmarked!", "Highlight bookmark" | Add to bookmarks, , , "No bookmark!", "Missing bookmark"+Show popup menu, "Browser Bookmarks Menu"'>Star</a>


最初のボタンの機能プラス、現在のページにメモがあるときはパネルを開いてそのメモをハイライトする。(アイコンもメモ用のものに変わる)

data:text/html;charset=utf-8,<a href='opera:/button/Highlight note,,,"Already noted!","Note Web" | Highlight bookmark,,,"Already Bookmarked!", "Highlight bookmark" | Add to bookmarks,,,"No Bookmark or Note!","Missing bookmark"'>Star</a>

あれこれ

  • つまり、ボタンのデフォルトのアクションはHighlight bookmarkなのだけれど、それを実行できないとき(=ブックマークされていないとき)には「 | 」の後のアクションに切り替わるので、アイコンもそれに伴って変わるというわけ。
  • たまにボタンが無反応になることがある。例えば、「ブックマークに追加」ダイアログを出してからキャンセルしたとき。
  • "Already bookmarked!"とか"No bookmark!"とか"Already noted!"の部分はツールチップやステータスバーに表示されるものなので、勝手に変えてもいい。
  • "Highlight bookmark"とか"Missing bookmark"とか"Note Web"の部分はアイコンの名前なので、アイコンセットから選んで勝手に変えてもいい。当然のことだが、自分の使っているスキンにそのアイコンが含まれない場合は表示されないので、スキンを変えるときは注意。
  • Highlight bookmarkアクションには既に"Highlight bookmark"アイコンが割り振られているので、実は"Highlight bookmark"というアイコン名は省略できる。別のアイコンを付けたいときにはそこを変えられるように、一応書いておいた。
  • アクションの組合せ方はopera-wikiあたりを参照すれば自分で作れる。