2013-09-07 4 views
1

Способ вставки текста или изображения в DIV (например, вход) - это щелчок по этому DIV и комментарий вставки, который обычно является CTRL + V.Вставить контент в DIV

Теперь, мой вопрос был бы, возможно ли, чтобы Javascript вставлял текст или изображение в DIV даже DIV (или ввод), даже если этот DIV не выбран?

Update:

<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 должен получить элемент пасты, даже не выбранный на странице.

Причина этого я сделаю скрытым.

+0

Желательно, чтобы вы показали нам, что вы пробовали до сих пор (например, вставляете его в выбранный div) – Itay

+0

Хорошо, я уточнил вопрос – xybrek

+0

Дубликат http://stackoverflow.com/questions/4517053/paste-from-clipboard Я думаю, – probablyup

ответ

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> 

SCRIPT

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); 

(Fiddle)

Если вставить в поле ввода там получить поймали и перенаправлен на DIV. Я пытаюсь заставить это работать по всей странице или внутри контейнера div, но это не так - похоже, только некоторые элементы запускают событие вставки.

Аналогичным образом это не работает, когда DIV скрыт, поэтому ему необходимо отобразить DIV, а затем использовать тайм-аут, чтобы повторно установить его после завершения вставки.

Я не уверен, что вы можете сделать эту работу за то, что хотите.

+0

Yah .. когда наклейка нажата, паста не работает – xybrek

+0

Да, я не могу придумать хороший способ обойти это - я рассмотрел возможность размещения редактируемого DIV на всей странице, но это сломает все ваши другие взаимодействия. Вы можете сделать всю страницу доступной для редактирования и попытаться уловить и запретить все, что не является пастой. Можете ли вы сказать нам, почему вы хотите это сделать - может быть, есть другой способ достичь той же функциональности. – SpaceDog

Смежные вопросы