3

将文本或图像粘贴到 DIV(如输入)的方法是单击该 DIV 并执行粘贴注释,通常是 CTRL + V。

现在,我的问题是,即使没有选择 DIV,是否可以使用 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 回答