Flashを使う案

上のサイトの"Copy to Clipboard"というボタンには、Flashを使ってクリップボードにコピーできるよ、という有名な方法↓を使ってある。

Operaでは動かないよ、と書いてあるけど、ここの実験2と3は動くみたい。


というわけで、opera_exの代替の代替に使えるんじゃないかと思って遊んでいるところ。

  • 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がグローバル関数なのでブックマークレットにしたい。オフラインで使えないのはどうしたらしいかな。Operabase64Flashを埋め込めないのだろうか?