OperaでCopyURL+

Operaはiniファイルを弄ることで、右クリックメニューをカスタマイズすることができ、用意されたアクションを記述することでクリップボードを操作することもできる。

が、現在のページのURLだけとか、選択テキストだけとか、画像のURLだけ、といった風にコピーできるものが限定されてしまっているので、タイトル+改行+URLなんて取得は不可能。

使えねー! Opera超使えねー!

そこでopera_exを使うことで、かなり自由なスタイルでURLやらタイトルやらをクリップボードに入れられるわけだが・・・

opera_ex使ったら負けかなと思ってる

なんかねー使いづらいのよねー。テキストファイル用意しなきゃいかんし、ちょっと凝った加工もできないしー。

というわけで、opera_exに頼らずにクリップボードを操作する方法を模索した。

実験1 iframe+flash

右クリックメニューのアクションにjavascriptも記述できるので、iframe生成しつつローカルに保存したsetClipboard.swf仕込み済みHTMLを、取得したい情報をハッシュにまとめつつ開けばいけね?

結果 : セキュリティに引っ掛かるので無理。(やる前からわかってたけど)

実験2 新規タブ+flash

openで新規タブにHTML+ハッシュなローカルHTMLを開いてクリップボードに入れつつ即座にclose。

結果 : 実験1と同じ理由で無理竜

実験3 WindowsScriptingHostに渡す

渡した先ならIEを操作できるので、クリップボードが使える。これだ!

結果 : そもそもOperaからページタイトルが渡せません。本当にありがとうございました。

あー、opera_exってWinAPI使ってタイトルの文字列取ってるんだな。WSHは無理じゃん。

ざんねん! わたしのちょうせんは これでおわtt

%s – ローカルキャッシュのファイル名(フルパス)

Opera7 All Action in Japanese

それだぁぁぁぁぁ!

実験4 WindowsScriptingHostにもっと渡す

URLと一緒にキャッシュのパスも渡し、タイトルはキャッシュのHTMLからtitle部分を抜き出す。

結果 : 成功

まさかキャッシュのパスを渡せたなんてねぇ。まさに神の御業だ ブッたまげたがよォォォ・・・

しかもWSHなんで1ファイルで完結しながらJavaScriptやVBやRubyも使えるのでテキストの加工が容易。選択テキストをblockquoteしつつciteにURLとかも可能。

ただ、欠点が。

ひとつは、一瞬、スペック次第では1秒程Operaのフォーカスが離れるてしまう。裏でIEを呼び出しているからなんだが、まあ、これぐらいは。

次が問題で、文字エンコードをADODBに丸投げしていること。ぶっちゃけると、ページ次第ではタイトルに含まれる2バイト文字が化ける。となると自前で文字コードを判別すりゃいいわけだが、ものすごく手間がかかる。

あー、まあ英語圏で使うなら問題無いんでこれでいいや。化けたらソースを表示して自前で取るってことで。

operacopyurl.wsf