Bookmarkletからクリップボードに文字列をコピー

Posted at 2004-07-04T00:08:00+09:00 in Coding

前回のエントリの応用で、Bookmarkletからクリップボードにコピーすることも出来ました。なにげに便利。てか、もうこれ無しでは生きていけない予感。

今回でっちあげたURIスキーマはset-data-to-clipboard:にしてみた。前回のレジストリと同じような感覚でまず登録。今度はスクリプトをSetDataToClipBoard.jsとします。

REGEDIT4

[HKEY_CLASSES_ROOT\set-data-to-clipboard]
@="URL:Set Data To Clipboard Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\set-data-to-clipboard\shell]

[HKEY_CLASSES_ROOT\set-data-to-clipboard\shell\open]

[HKEY_CLASSES_ROOT\set-data-to-clipboard\shell\open\command]
@="wscript.exe C:\\Scripts\\SetDataToClipBoard.js \"%1\""

SetDataToClipBoard.jsはこんな感じ。

var oArgs = WScript.Arguments
var s = oArgs(0);
s = s.replace(/^set-data-to-clipboard:\/\//, "");
s = s.replace(/\/$/, "");

var oIe = new ActiveXObject("InternetExplorer.Application");
oIe.Navigate("about:blank");

while (oIe.Busy) WScript.Sleep(100);

oIe.Document.parentWindow.clipboardData.setData("text", unescape(s));
oIe.Quit();

WSHでクリップボードを扱う場合、IEを隠れて起動させて、clipboardDataオブジェクトを利用するというバッド・ノウハウに基づいて、引数をクリップボードにコピーするというだけのJScriptです。JScriptな理由は、unescape()使うからというだけです。前回と違い最後に付くスラッシュを消しているのは、スラッシュがない文字列をURLスキーマに渡すとどうもWindowsが勝手にスラッシュ付けてくれちゃうみたいなので。

あとはテキトウにBookmarkletを作成してみましょう。例えば閲覧中のページのタイトルとリンクをコピーするBookmarkletだと、Locationには、

javascript:document.location.href='set-data-to-clipboard://'+escape(document.title+'\n'+document.location.href+'\n')+'/';

と、なります。エスケープしてやることと、最後にスラッシュを付けてやるのがポイント。

これでリンクタグ作成とかAmazonの個別商品リンク作成とかもコピーするのがメンドウなprompt()経由ではなく一気にクリップボードにセットできる様になります。

すげー便利だよ。俺、天才。

寝ぼけてるのか。

前回と今回のエントリを実践するのはかなりメンドウだと思いますが(説明わかりにくいし)、やれば必ずそれだけの利点はあるような気がします。

WSHマンセー。

ちなみに、前回と今回のエントリを実践するとJavaScript Consoleにガンガンエラーが溜まっていきます。まー実害はないし、個人の裁量で使うものなのでまぁ良いかなとか、投げやりな。

追記@2004/07/04

書き忘れていたのですが、インターネット オプションのセキュリティ設定のレベルのカスタマイズから、「スクリプトによる貼り付け処理の許可」を「有効にする」にしないとうまく動かないと思います。

Recent entries from same category

このエントリと同じカテゴリに投稿された最近10件のエントリです。

  1. MEGAUPLOADから簡単にダウンロード
  2. Query YQLプラグインでOpen Data Tableをサポートした
  3. Amazon Product Advertising APIで返されるProductGroupの日本語訳
  4. Aex: Amazon.co.jpの全商品から検索するよ!
  5. jQueryプラグイン: Query YQL
  6. Asamashi09 #3
  7. jQueryで文字参照に変換
  8. このエントリを含むエントリ
  9. jQueryプラグイン: Highlight Search Terms
  10. 検索語の強調

Comments

JavaScriptに対応、または有効な環境の場合、ここにこのエントリへのはてなブックマークコメントが表示されます。