Merlin用opera_exの代わり、但しWindows専用



「とんぼ」が飛ぶ季節になったのに「何を今更 Merlin?」な気もしますが、、、、、


「出来ちゃった」のでエントリーしてみますよ。(同じ様なものはきっと他の人も作ってるとは思うけど)


何の事は無いのですよ!
↓のスクリプトで Delay & Copy & Cancel をやってるだけだし。
Copy-Cancel.vbs(ダウンロードはリンクを右クリックして「リンク先を保存(Save Linked Content As)」でどうぞ) *1

Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")

WScript.Sleep 100
WshShell.SendKeys "^{INSERT}"
WScript.Sleep 100
WshShell.SendKeys "+{TAB}"
WScript.Sleep 100
WshShell.SendKeys "{ENTER}"

で ↓を [Hotclick Popup Menu] に書く。
Copy with link

item, "Copy with link" = "Go to page, "javascript:(function(){window.prompt('','<a'+String.fromCharCode(32)+'href='+String.fromCharCode(34)+location.href+String.fromCharCode(34)+String.fromCharCode(32)+'title='+String.fromCharCode(34)+document.title+String.fromCharCode(34)+'>'+window.getSelection()+'</a>')})();" ,,,"Panel Links" & Execute program, "D:\Opera\misc\Copy-Cancel.vbs" "


blockquote

item, "blockquote" = "Go to page, "javascript:(function(){window.prompt('','<blockquote'+String.fromCharCode(32)+'cite='+String.fromCharCode(34)+location.href+String.fromCharCode(34)+String.fromCharCode(32)+'title='+String.fromCharCode(34)+document.title+String.fromCharCode(34)+'><p>'+window.getSelection()+'</p></blockquote>')})();" ,,,"Tile vertically" & Execute program, "D:\Opera\misc\Copy-Cancel.vbs" "

ということでテスト。

変数が複数あると動かない 9.5 beta2 では、opera_ex が動きません。そこで「opera_exを使わないでコピー強化ver.2」等を参考にした記述を [Hotclick Popup Menu] に追記してみた。


追記

opera_exの代わり」をツールバーのボタンからも実行できるように Button に仕立ててみました。
↓こちら
「opera_ex の代わり」の「Copy with link」「blockquote」ButtonをOperaにインストール


当初、アイコンの指定がうまく出来ていませんでしたが、ちゃんと設定する事ができました。当初の設定のボタンをインストールしている方はお手数ですがもう一度↑のページからインストールし直してください。


弁解になりますが、どうも opera:/button/ のアンカーはかなりの曲者って感じました。


  • ¥(バックスラッシュ)のエスケープは使えないし、

  • &(アンパサント)で複数のコマンドを実行する場合のアイコン指定も一筋縄ではない。
で、解決策として

  • \x22 なら一般的手法で %22(%2522) や "(%26quot;) や String.fromCharCode(34) に逃げられるけれども

  • &の件は、 Operaopera:/button/ を処理する時の「癖」と云うか「仕様」と云うか「バグ?」の様な気がしないでもない?

    なので、忘れないように(忘れた時の為に?)メモして置くと



    opera:/button/〜のアンカーで icon を指定する方法 :



    & で区切って複数の command を実行する場合最初の command で icon 指定するのは menu.ini と同じだが、 & で区切った最後の command が " で終わっていない場合 " で終わる様に工夫する ⇒ ダミーで最後の command にも もう一度 icon を指定してやる


    具体的には

    opera:/button/Go to page, "javascript:(function(){ (中略)})();" ,,,"Panel Links" & Delay, 100 & Copy & Cancel

    だとうまくいかないので最後に「,,,,"Panel Links"」を追加して

    opera:/button/Go to page, "javascript:(function(){ (中略)})();" ,,,"Panel Links" & Delay, 100 & Copy & Cancel,,,,"Panel Links"

    の形にしてからOperaボタンエディター - 備忘録のぺえじのページの上側のテキストエリアに入れて「ボタンを生成(URLエンコード)する」と うまくいく。

*1:ここでは、"D:\Opera\misc\Copy-Cancel.vbs" のパスにファイルがあるものとします。別のドライブ&フォルダに置きたい場合は [Hotclick Popup Menu] の記述を各自変更する必要が有ります。