戻る トップ

JavaScriptによるクリップボード操作

JavaScript(JScript)のclipboardDataの可能性とセキュリティ

JScript(Windows版IEのJavaScript実装)のclipboardDataオブジェクトを使うと、「クリップボードのテキスト操作」を簡単に行うことができます。たとえば、CGIやスクリプトで生成した文字列やフォームのテキストボックスの文字列をボタン操作などで(あるいは自動的に)クリップボードにコピーし、JavaScriptで記述された他のプログラムで簡単に利用できるようになるわけです。

さらに……clipboardDataオブジェクトの機能を使うと、「現在クリップボードにある文字列の取得」もできます。一度JavaScript側で取り込んだ文字列は、何かの拍子wにサーバーに送ることもできるわけですから……。個人情報をクリップボードにコピーした状態での「ネットサーフィン」は、注意した方が良さそうですね(^^;。

一応、セキュリティの設定でスクリプトからクリップボードを操作できないようにしたり警告を出したりするよう設定できるんですが、この機能自体知らない人も多そう……。いくつかの環境(XP/2000)を見てみると、デフォルトは制限なし、つまり警告なしでクリップボード操作ができる状態でした。
さすがに最近の環境では、デフォルトでJavaScriptによるクリップボードのアクセスを許可しますか、といった確認ダイアログが出るようですが。

クリップボードに文字列をコピーする場合は、以下のように形式指定(Text)と文字列を引数にclipboardDataのsetData()を呼び出します。

clipboardData.setData("Text", "文字列");

クリップボードの文字列の取得は、clipboardData.getData("Text")とするだけ。

テスト

適当な文字列をコピーしてから、ボタンをクリックしてみてください。

適当な文字列を入力してから、ボタンをクリックし、IEのアドレス欄などに貼り付けてみてください。


このclipboardDataは、IEの機能のようですね。JavaScriptのみでなくVBScriptやWSHなどでもIEオブジェクトを介して利用できるようです。

確かに便利な機能ではありますが、個人情報をコピペで入力した後などにJavaScrptを使用したサイトにアクセスする、というのはよくあることでしょう。セキュリティと利便性のバランスから言えば難しい問題ですが、デフォルトで「警告ダイアログを出し許可したらクリップボードに無制限にアクセス可能」という形でよいものかどうか。

Webブラウザの「外」で動かすローカルのJavaScriptアプリケーションでは、積極的に活用してみたい機能なんですけどね。


トップ 戻る