2016-08-31 6 views
1

以前、アプリケーションはwindow.clipboardData.getData( 'Text')からクリップボードの内容を取得していました。しかしこれはfirefoxとchromeではサポートされていません。クロスブラウザのJavaScriptペースト

コピーするには、document.execCommand( 'copy')が呼び出され、UIコンテンツがクリップボードに取得されました。 document.execCommand( 'copy')はfirefoxとchromeでサポートされているので、そこで動作しています。

ただし、document.queryCommandSupported( 'paste')がtrueでdocument.queryCommandEnabled( 'paste')がfalseの場合でも、document.execCommand( 'paste')はFirefoxでfalseを返しますが、firefoxとchromeではfalseです。しかし、それは真実を返すIE.Isそこにdocument.execCommand( '貼り付け')をtrueに戻すjavascriptの任意の方法ですか?

コンテンツをUIに貼り付けるボタンがあります。このアプリケーションでは、基本的にテーブル行がクリップボードのデータから追加されます。 ClipboradDataは、ctrl + c ctrl + vイベントをトラップすることによってキャプチャされます。しかし、私は、ClipboradData、onclickイベントへのアクセス、またはdocument.execCommand( 'paste')を通してクリップボードデータへのアクセスを望んでいます。これはfalseを返します(firefoxとchromeで)。

function paste() { 

    var input = document.createElement('TEXTAREA'); 
    input.setAttribute('name', 'post'); 
    input.setAttribute('maxlength', 5000); 
    input.setAttribute('cols',80); 
    input.setAttribute('rows', 40); 
    document.body.appendChild (input); 
    input.contentEditable = true; 
    input.focus(); 
    if(document.queryCommandEnabled('paste')){ 
     document.execCommand('paste',false,null); 
     result=input.value; 
    } 
    document.body.removeChild(input); 
    return result; 
} 

クリップボードから貼り付けるソリューションを教えてください。

答えて

0

セキュリティ上の理由から、残念ながらdocument.execCommand( 'paste')を使用してプレーンJavaScriptからクリップボードのデータを読み取ることはできません。そのためには、Web拡張機能を作成する必要があります。

+0

Googleドキュメントは拡張子なしでこれを行うと思われます – bnieland

+0

@bnieland Chromeを使用している場合は、Firefoxを使用していても機能しない場合はtrueです(直接ネイティブクライアントを使用しています)。 –

+0

私はそれをテストしていませんが、Googleドキュメント*は拡張機能を使用しているようです。 – bnieland

関連する問題