2008/01/01 (Tue)
■[sleipnir][script]スーパードラッグアンドドロップ
スーパードラッグアンドドロップっぽいのを作ってみたのでラボのジャンクに置いといた。導入はともかく、カスタマイズは全く洗練されてなくてめんどくさいがあんまりやる気がないので改善する見込みは薄い。IE7 Proに付いてる機能が絶賛されてるあたり、あんまりカスタマイズが必要なものでもないのかな?と思った。そもそもテキスト選択後にググるかURIとして開くくらいしかしないからこそD&Dでってのが便利なんだろうし*1。
初期設定では、選択テキストを右にドロップするとGoogleで検索、左へドロップするとURIと見なして開く。画像上やリンク上での振る舞いは右図のようになる。リンクされた画像かどうかはリンク要素の直下が画像がどうかで判定してるのでそんなに厳密じゃないけど、多分大抵は期待通りに振る舞うと思う。真上や真下ならリンクされているかどうかに関わらず画像を保存するし、左なら画像かテキストリンクかに関わらずリンク先を保存する。
カスタマイズはsdadSetting.jsを弄れば一応できる。初期設定にない*2のもので、
["hogeで検索", "userAction('hoge.js')"],
みたいにすればUserAction用スクリプトのhoge.jsを実行する。SearchActionCreatorで作ったスクリプトや、バーに選択したテキストをコピーみたいなSmartSearch用スクリプトを登録するのに使う。ビュー外にドロップしたときまで反応するのがうざかったのでドロップの有効距離は15〜200にしてあるが、テキストエリアでD&Dとかやると誤爆するかもしれない。
追記
改めてエントリーにするほどじゃないけどアップデートしたので。APIが使える環境ではAPI利用して新しいウィンドウを開くようにしたのと設定できる項目を増やした。開く系の動作に統一感をもたせるため、テキストのドラッグ時の動作が0.2の時と左右逆になってるので注意。
新しく増えた設定のphaseはドラッグ方向の基準点を指定する。0.5で上が基準になるので
phase: {text: 0.5, image: 0, linkedImage: 0, link: 0},
とすると、テキスト選択時の動作が左右ではなく上下になる。3つ以上登録している場合でも使えるけど多分2つの場合に左右を上下にする以外に出番はない。