@IvanVvV

Как добавить текст при копировании в буфер обмена из input?

<script type="text/javascript">
function addLink() {
	var body_element = document.getElementsByTagName('body')[0];
	      
                if (document.activeElement && 
                        (                       document.activeElement.tagName.toLowerCase () == "input")) 
                {
                    var text = document.activeElement.value;
                    var selection = text.substring (document.activeElement.selectionStart, 
                                              document.activeElement.selectionEnd);								
                }
                else {
     var selection = window.getSelection();
                }
 
    var pagelink = "<p>Ссылка <a href='"+document.location.href+"'>"+document.location.href+"</a></p>";

    var copytext = selection + pagelink;
    var newdiv = document.createElement('div');
    newdiv.style.position = 'absolute';
    newdiv.style.left = '-99999px';
    body_element.appendChild(newdiv);
    newdiv.innerHTML = copytext;
    selection.selectAllChildren(newdiv);
    window.setTimeout( function() {
        body_element.removeChild(newdiv);
    }, 0);
}
document.oncopy = addLink;
</script>
Текст текст
 <input type="text" value="Some text in an input field." size="40"/>


Собственно к тексту из body при копировании url добавляется, а вот при копировании из input нет, хотя выделенное значение берется.
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 1
coolswood
@coolswood
https://coolswood.github.io
Потому что getSelection() не работает с инпутами. Используйте selectionStart и selectionEnd
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы