Flashを使う案
上のサイトの"Copy to Clipboard"というボタンには、Flashを使ってクリップボードにコピーできるよ、という有名な方法↓を使ってある。
Operaでは動かないよ、と書いてあるけど、ここの実験2と3は動くみたい。
というわけで、opera_exの代替の代替に使えるんじゃないかと思って遊んでいるところ。
- まず、http://www.codecogs.com/js/_clipboard.swfをダウンロードしてどこかのサーバーに置く。
- 次に、http://www.codecogs.com/js/clipboard.jsをダウンロードしてきて、
- escape(text2copy)というところをencodeURI(text2copy)に変えて(こうしないと日本語が文字化けする)
- /js/_clipboard.swfというところをアップロードしたFlashのURLに変える。
function copy(text2copy) { if (window.clipboardData) { window.clipboardData.setData("Text",text2copy); } else { var flashcopier = 'flashcopier'; if(!document.getElementById(flashcopier)) { var divholder = document.createElement('div'); divholder.id = flashcopier; document.body.appendChild(divholder); } document.getElementById(flashcopier).innerHTML = ''; var divinfo = '<embed src="アップロードしたFlashのURL" FlashVars="clipboard='+encodeURI(text2copy)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>'; document.getElementById(flashcopier).innerHTML = divinfo; } }
- それをユーザースクリプトとしてインストール。
- どこでもいいのでページを開き、アドレス欄に以下のように入力してエンター。
javascript:copy('hoge');
今日はここまで。このままじゃcopyがグローバル関数なのでブックマークレットにしたい。オフラインで使えないのはどうしたらしいかな。Operaはbase64でFlashを埋め込めないのだろうか?