21.11.2017, 01:26
|
|
Аспирант
|
|
Регистрация: 10.02.2016
Сообщений: 46
|
|
Вот так?
if (el.tagName != 'TEXTAREA') return;
не работает
|
|
21.11.2017, 02:26
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
копирование выделенного текста из 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>
|
|
21.11.2017, 02:35
|
|
Аспирант
|
|
Регистрация: 10.02.2016
Сообщений: 46
|
|
рони, спасибо вам большое! А я уже начал было копать в гугле как заставить работать именно с textarea, так как решил, что не работает, поскольку она теряет фокус при нажатии на кнопку
|
|
21.11.2017, 11:54
|
|
Аспирант
|
|
Регистрация: 10.02.2016
Сообщений: 46
|
|
У меня тут ещё вопросик. А как сделать, чтобы перед вставкой текста, вставлялся ещё одиночный тег <img src="" alt="" />?
Вот так попробовал, но вставляет только тег:
...
document.querySelector('button]').addEventListener('click', function(event) {
message.value += '<img src="" alt="" />' + txt;
txt = '';
})
...
|
|
21.11.2017, 12:03
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
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>
|
|
21.11.2017, 12:13
|
|
Аспирант
|
|
Регистрация: 10.02.2016
Сообщений: 46
|
|
Работает теперь. Не пойму в чём была беда Ещё раз огромное спасибо!
|
|
21.11.2017, 12:40
|
Аспирант
|
|
Регистрация: 01.03.2013
Сообщений: 77
|
|
беда была в селекторе кнопки видимо querySelector('button]')
|
|
21.11.2017, 15:02
|
|
Аспирант
|
|
Регистрация: 10.02.2016
Сообщений: 46
|
|
Друзья, я вероятно уже достал всех своим поразительным нубством, но… Я тут подумал: а можно ли сделать кнопку неактивной, пока не выделен текст для отправки? Если это не сложно, помогите пожалуйста. Если требует много времени, не стоит, а то я и так уже злоупотребил гостеприимством
|
|
21.11.2017, 16:01
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
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>
|
|
21.11.2017, 16:13
|
|
Аспирант
|
|
Регистрация: 10.02.2016
Сообщений: 46
|
|
рони, спасибо! Всё отлично работает.
|
|
|
|