Javascript >> Flash でクリップボードにコピー

| コメント(5) | トラックバック(2)

先日、こんな記事を読みました。

fladdict.net blog: オンライン上swfの天才的デバッグ方法
http://www.fladdict.net/blog-jp/archives/2005/06/swf_2.php

トレース使う代わりに、アウトプットしたい情報をクリップボードに送れ!! System.setClipboard(ここにデータ); 頭よすぎ。

まさに目から鱗のデバッグ方法。そんなことできるとは。
これ読んで、ふと、もしかしたら、長年不便に思ってたことを解消できるかもしれないと思い立ちました。

RakuCopyamazie など、一度クリップボードを経由して、メールやBlogにペーストするツールを作っていると、たいていボタン一つでクリップボードに転送する機能をつけたくなります。

これは、Windows 版 IEでは可能なのですが、それ以外のブラウザでは、Javascript を使って、クリップボードに転送する方法がありませんでした。

Flash なら、setClipboard で、どのブラウザでも(Mac の Safariでも)クリップボードに転送できます。
なら、Javascript から Flash 経由で、クリップボードに転送できるのではないかと。

やってみると、結構やっかいなことが判明。
試行錯誤した挙句、以下のページに辿り着き、希望した動作が実現できました。

MustardLab.Developer.Flash.JavascriptToFlashCommunication
http://www.mustardlab.com/developer/flash/jscommunication/

サンプルはコチラ。 IE、Firefox((はてなブックマークにてFirefox for Linux では動作しないというコメントが。Linuxでは無理なのかな・・・。→やはりLinuxでは無理みたいです。Knoppix上のMozillaで確認。Linux以外で動作するようにしてみます。))、Opera、Safariなどでクリップボードに転送できることが確認できました。

動作条件は、Flash プラグインがインストールされていることと、 encodeURI が使えること((日本語を扱うために必要))です。 amazie の動作対象環境は、まさにそれなので、特に問題なければ、組み込んでみようかと思ってます。

トラックバック(2)

トラックバックURL: http://a-h.parfe.jp/mt6/mt-tb.cgi/118

動作デモhttp://la.ma.la/misc/js/setclipboard_for_firefox.htmlFirefox1.5 + FlashPlaye... 続きを読む

今感じていること - コピーできます (2006年8月27日 10:19)

いつまでも落ち込んでもいられないので(反省してます)、再度エンハンス。 そもそも「ことばのていぎ」、なんでログインする必要があるんだと言う話もあり。... 続きを読む

コメント(5)

初めまして、検索でたどり着きました
私も似たような感じでやってるんですが、
どうしてもNetscapeではクリップボードにコピーができないんですよね。。。

Netscapeはかなり有名なブラウザなので
ここを妥協することはできないのです
何かいい方法ないんですかねぇ・・・悩みどころです

> フラッシャー さん

コメントありがとうございます。
やはり、どのブラウザでも動作させたいですよね。

ちょっと試してみたのですが、最新のNetscape7.1では、ご指摘のとおり、動作しませんでした。

ただ、同じ Mozilla ベースの FireFox では動作しているので、何か違う点があると思い、調べてみると Flash Player のバージョンでした。

Netscape は、標準では Flash Player 6が入っており、7にアップすると動作しました。
同様に、FireFox の Flash Player をバージョン6にしてみると、動作せず。

Mozilla 系のFlash Playerは、バージョン7以降でないと動作しないみたいですね。

Flashの表示用タグにバージョン指定を入れて、プレイヤーのアップグレードを促すなどの対処がいりそうです。

まだ、少し時期早尚なのかもしれませんね。

FlashPlayerのversionなのですね
原因を解明していただきありがたく思います

特別なデバック方法としての用途でなくサイト上での記事などを
クリップボードにコピーする、というのみを目的とした大衆向けの場合
バージョンアップの手間を考えれば、その際にアップを促されると
閲覧者にとっては少々厳しい面があるかもしれません(人によりますが)

ブラウザに関しては最新バージョンを使ってない人も多いので
NetscapeでFlashPlayer 7がデフォルトとして採用されても
まだまだ難しいところですね

さっき気付いたのですが、+が空白になったりするのでencodeURIComponentのほうが良さそうですね。

>malaさん
ご指摘ありがとうございます。
サンプル修正しました。
めちゃくちゃ遅レスですみません。

コメントする

このブログ記事について

このページは、AUSGANG SOFTが2005年7月 6日 04:31に書いたブログ記事です。

ひとつ前のブログ記事は「amazie 用 GreaseMonkey スクリプト」です。

次のブログ記事は「NiceLink for MT - リンクが百倍簡単に貼れる Greasemonkey スクリプト」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ