Вот так?
if (el.tagName != 'TEXTAREA') return; не работает :( |
копирование выделенного текста из textarea
Chile,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <body> <textarea name="descr" cols="60" rows="10" >Недавно в Chrome Web Store мне попалось приложение jsFiddle, проект британского программиста Piotr Zalewa aka @zalun. По-сути, это очередная песочница для web-программистов, но говоря «очередная» я не подразумеваю «никому не нужная». Я долго ждал момента, когда WYSIWYG заменят такие песочницы, и, похоже, дождался</textarea> <textarea name="text" cols="60" rows="10"></textarea> <button type="button">цитировать выделенный текст</button> <script> var txt = ''; var message = document.querySelector('[name="text"]'); document.addEventListener('mouseup', function(event) { var el = event.target; if (el.tagName != 'TEXTAREA' && el.getAttribute('name') != 'descr') return; if (txt = window.getSelection) { txt = el.value.substring(el.selectionStart, el.selectionEnd); } else { txt = document.selection.createRange().text; } }) document.querySelector('button').addEventListener('click', function(event) { message.value += txt; txt = ''; }) </script> </body> </body> </html> |
рони, спасибо вам большое! А я уже начал было копать в гугле как заставить работать именно с textarea, так как решил, что не работает, поскольку она теряет фокус при нажатии на кнопку:)
|
У меня тут ещё вопросик. А как сделать, чтобы перед вставкой текста, вставлялся ещё одиночный тег <img src="" alt="" />?
Вот так попробовал, но вставляет только тег: ... document.querySelector('button]').addEventListener('click', function(event) { message.value += '<img src="" alt="" />' + txt; txt = ''; }) ... |
Chile,
что не так?? <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <body> <textarea name="descr" cols="60" rows="10" >Недавно в Chrome Web Store мне попалось приложение jsFiddle, проект британского программиста Piotr Zalewa aka @zalun. По-сути, это очередная песочница для web-программистов, но говоря «очередная» я не подразумеваю «никому не нужная». Я долго ждал момента, когда WYSIWYG заменят такие песочницы, и, похоже, дождался</textarea> <textarea name="text" cols="60" rows="10"></textarea> <button type="button">цитировать выделенный текст</button> <script> var txt = ''; var message = document.querySelector('[name="text"]'); document.addEventListener('mouseup', function(event) { var el = event.target; if (el.tagName != 'TEXTAREA' && el.getAttribute('name') != 'descr') return; if (txt = window.getSelection) { txt = el.value.substring(el.selectionStart, el.selectionEnd); } else { txt = document.selection.createRange().text; } }) document.querySelector('button').addEventListener('click', function(event) { message.value += '<img src="" alt="" />'+txt; txt = ''; }) </script> </body> </body> </html> |
Работает теперь. Не пойму в чём была беда:) Ещё раз огромное спасибо!
|
беда была в селекторе кнопки видимо querySelector('button]')
|
Друзья, я вероятно уже достал всех своим поразительным нубством, но… Я тут подумал: а можно ли сделать кнопку неактивной, пока не выделен текст для отправки? Если это не сложно, помогите пожалуйста. Если требует много времени, не стоит, а то я и так уже злоупотребил гостеприимством:)
|
Chile,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <body> <textarea name="descr" cols="60" rows="10" >Недавно в Chrome Web Store мне попалось приложение jsFiddle, проект британского программиста Piotr Zalewa aka @zalun. По-сути, это очередная песочница для web-программистов, но говоря «очередная» я не подразумеваю «никому не нужная». Я долго ждал момента, когда WYSIWYG заменят такие песочницы, и, похоже, дождался</textarea> <textarea name="text" cols="60" rows="10"></textarea> <button type="button" class="quote" >цитировать выделенный текст</button> <script> var txt = ''; var message = document.querySelector('[name="text"]'); var button = document.querySelector('.quote'); document.addEventListener('mouseup', function(event) { var el = event.target; if (el.tagName != 'TEXTAREA' && el.getAttribute('name') != 'descr') return; if (txt = window.getSelection) { txt = el.value.substring(el.selectionStart, el.selectionEnd); } else { txt = document.selection.createRange().text; } dis() }) button.addEventListener('click', function(event) { message.value += '<img src="" alt="" />'+txt; txt = ''; dis() }) function dis() { if(txt) button.removeAttribute('disabled'); else button.setAttribute('disabled', 'disabled') } dis() </script> </body> </body> </html> |
рони, спасибо! Всё отлично работает.:)
|
Часовой пояс GMT +3, время: 20:56. |