2016-07-12 14 views
1

クリップボードにコピーされたテキストを取得するにはどうすればいいですか? Excelからデータがコピーされるため、コピーを作成したくありません。Javascript Chromeのクリップボードからコピーされたテキストを取得する

var clipText = window.clipboardData.getData('Text'); 

そして、それは完璧に動作します:IEで は、私が使用しています。 クロームで可能ですか?または多分Firefox?事前

+0

「クリックして貼り付ける方法は?それはgoogle docsで動作します](http://stackoverflow.com/questions/34470272/how-to-paste-on-click-it-works-in-google-docs) – GSerg

答えて

5

window.clipboardDataオブジェクトの

おかげでIEでのみ使用可能です。ウェブサイトがクリップボードのデータにアクセスできるようにすることは、特にあなたが知らないうちに、大きなセキュリティ上の脆弱性のようです。仕様によると、それはMicrosoft Edgeとしてはほとんど非難されています。

代わりに、あなたはpasteイベントを聞くことによって、データにアクセスすることができます。

document.addEventListener('paste', function (event) { 
    var clipText = event.clipboardData.getData('Text'); 
}); 
+1

これで、ユーザーはCtrl + V Navigatorでデータを取得できますか? – clementine

+0

@clementineはい、あなたのアプリは知らないうちにエンドユーザのクリップボードから潜在的に機密性の高い情報を盗むことはできません。 –

0

あなたはjQueryのを使用し、「ペースト」イベントに要素をバインドするために探しているなら、あなたが使用してクリップボードのデータにアクセスすることができます呼び出し元イベントのoriginalEventプロパティ。

ウィンドウオブジェクトを調べて、clipboardDataが未定義であるかどうかを確認します。これはあなたがIEまたはEdgeではないことを意味します。

this.bind('paste', function(e){ 
if (window.clipboardData === undefined) 
    clipText = e.originalEvent.clipboardData.getData('Text') // use this method in Chrome to get clipboard data. 
else 
    clipText = window.clipboardData.getData('Text') // use this method in IE/Edge to get clipboard data. 
}); 
関連する問題