После события стирается текст в textarea и input
Добрый день!подскажите пожалуйста, есть область для ввода текста и вывода, и поле поиска. После поиска текст найденный выделяется, в textarea и input стирается,как можно сделать, чтобы текст оставался и была возможность делать новый поиск... и как можно сделать чтобы не только напечатанный текст отображался,но и скопированный(сейчас при копировании текст не отображается)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <style> </style> Search: <input type="text" id="text-to-find" value="" type="submit" > <p> </p> <form name="search"> <textarea rows="7" cols="40" name="message"></textarea> </form> <div id="printBlock" style="position:absolute; left:400px; top:10px;" ></div> <script> (function() { document.querySelector('input').addEventListener('keydown', function(e) { if (e.keyCode === 13) { FindOnPage('text-to-find'); } }); })(); </script> <script> var messageBox = document.search.message; function onkeypress(e){ var printBlock = document.getElementById("printBlock"); var val = String.fromCharCode(e.keyCode); printBlock.textContent += val; } function onkeydown(e){ if(e.keyCode===8){ var printBlock = document.getElementById("printBlock"), length = printBlock.textContent.length; printBlock.textContent = printBlock.textContent.substring(0, length-1); } } messageBox.addEventListener("keypress", onkeypress); messageBox.addEventListener("keydown", onkeydown); </script> <script> function domRangeHighlight(text) { var root = document.getElementById('printBlock').firstChild; var content = root.nodeValue; if (~content.indexOf(text)) { if (document.createRange) { var rng = document.createRange(); rng.setStart(root, content.indexOf(text)); rng.setEnd(root, content.indexOf(text) + text.length); rng.surroundContents(highlightDiv); } else { alert( 'Вероятно, у вас IE8-, смотрите реализацию TextRange ниже' ); } } else { alert( 'Совпадений не найдено' ); } } </script> <script type="text/javascript"> var lastResFind=""; var copy_page=""; function TrimStr(s) { s = s.replace( /^\s+/g, ''); return s.replace( /\s+$/g, ''); } function FindOnPage(printBlock) {//ищет текст на странице, в параметр передается ID поля для ввода var obj = window.document.getElementById(printBlock); var textToFind; if (obj) { textToFind = TrimStr(obj.value);//обрезаем пробелы } else { alert("Введенная фраза не найдена"); return; } if (textToFind == "") { alert("Вы ничего не ввели"); return; } if(document.body.innerHTML.indexOf(textToFind)=="-1") alert("Ничего не найдено, проверьте правильность ввода!"); if(copy_page.length>0) document.body.innerHTML=copy_page; else copy_page=document.body.innerHTML; document.body.innerHTML = document.body.innerHTML.replace(eval("/name="+lastResFind+"/gi")," "); document.body.innerHTML = document.body.innerHTML.replace(eval("/"+textToFind+"/gi"),"<b><a name="+textToFind+"style=''>"+textToFind+"</a> </b>"); lastResFind=textToFind; window.location = '#'+textToFind; } </script> </body> </html> Пример https://ibb.co/YWqyVTB |
Часовой пояс GMT +3, время: 22:21. |