onclickでクリップボードにテキストを貼付ける

(20061011編集しました。)
1年以上前にオケラボブログ : Widgetからクリップボードを使ってみるテストなんてのをやってみたんですけど、この時使った「隠しinputに書き込んでAppleScriptでC-cを入力させてコピーする」という手口はやっぱり美しくないと思ってるわけですよ。
で、OSXにはiconvなんてコマンドがあるらしいのでそれを使えば文字コードを変換できるんじゃないかと思って試行錯誤しました。


で、5時間くらいかけて色々失敗して諦めたんですけど、諦め記事書いてる最中に神様が降りてきたので急遽予定変更です。成功しちゃいました。
でも眠いから詳しくは一晩寝てから纏めます。とりあえず

function copy( str ){
    if(window.widget)
        widget.system("/bin/echo -n '"+str+"' | /usr/bin/iconv -f UTF8-MAC -t shift-jis | /usr/bin/pbcopy", null);
}

文字コードの部分は時と場合によるかもしれない。試してない。とりあえずソースコードは全部UTF-8で書いてる。
iconv -fは濁音の関係でUTF8ではなくUTF8-MACにする必要があります。
あと適当に、参考にしたようなしなかったようなもののメモ。

っていうか今にしてみれば、echoを使うことをさっさと思い出してればもっとあっさりできそうだった悪寒。頑張れ俺。超頑張れ。