3

テキストまたは画像を DIV に貼り付ける方法 (入力など) は、その DIV をクリックしてコメントを貼り付けることです。通常は CTRL + V です。

さて、私の質問は、Javascript を使用して、DIV が選択されていなくても、DIV (または入力) にテキストまたは画像を貼り付けることは可能ですか?

アップデート:

<div contenteditable="true" id="pasteCapture" style="height: 100px; width: 100px; " onpaste='handlepaste(this, event)'></div> 
   <script>
        function getfocus(){
            document.getElementById('pasteCapture').focus()
        }
  </script>

これまでのところ、これは私がやったことです。divを選択してペーストすると問題ありません。ただし、私の要件は、ページで選択されていなくても、この DIV が貼り付け項目を取得することです。

この理由は、この div を非表示にするためです。

4

1 に答える 1

1

私が正しく理解している場合は、貼り付けイベントを傍受し、貼り付けを非表示の div にリダイレクトします。私はそれのいくつかを行うことができます:

HTML

Paste Stuff Here: <input id='pasteCapture' type='text'></input>
<div contenteditable="true" id="pasteRedirect" style="height: 100px; width: 100px; " >    
</div> 
<button 
  onclick=" document.getElementById('pasteRedirect').style.display = 'block';"
>Show Div</button>

脚本

function handlePaste(e) {
    document.getElementById('pasteRedirect').style.display = 'block';
    document.getElementById('pasteRedirect').focus();
    e.srcElement = document.getElementById("pasteCapture");
    setTimeout( function() { 
        document.getElementById('pasteRedirect').style.display = 'none';
    }, 0 );
}

document.getElementById("pasteCapture").addEventListener("paste", handlePaste, false);

(フィドル)

そこの入力ボックスに貼り付けると、キャッチされて DIV にリダイレクトされます。これをページ全体またはコンテナ div 内で機能させようとしましたが、そうではありません。一部の要素のみが貼り付けイベントをトリガーするようです。

同様に、DIV が非表示の場合は機能しないため、DIV を再表示し、貼り付けが完了した後にタイムアウトを使用して再度非表示にする必要があります。

あなたがやりたいことのためにそれを機能させることができるかどうかはわかりません。

于 2013-09-07T05:55:01.133 に答える