Добавить и добавить поле ввода текста с помощью Javascript или jQuery

Я искал и искал и, похоже, не нашел ответа на этот вопрос, поэтому, пожалуйста, простите меня, если я задаю вопрос, на который уже был дан ответ.

Я использую Tampermonkey для Chrome. Это версия Greasemonkey для Chrome. Я часто посещаю форум по адресу http://forum.xda-developers.com. Всякий раз, когда я иду, чтобы опубликовать ответ на этом форуме, мне нравится менять шрифт. Редактор ответов чем-то похож на редактор Stackoverflow — редактор кода. Поэтому, когда вы меняете шрифт, он оборачивает теги шрифта вокруг вашего текста в текстовом поле вашего редактора, как в этом примере ниже:

[FONT="Arial"]This is a reply.[/FONT]

Теперь я хотел бы использовать Javascript или jQuery для автоматического добавления [FONT="Arial"] и добавления [/FONT] к полю ввода текста редактора при загрузке страницы.

Итак, как говорится, какой Javascript или jQuery я бы использовал для автоматического добавления и добавления этого текста при загрузке страницы?


person Mister Pyrrhuloxia    schedule 23.09.2015    source источник


Ответы (2)


что-то вроде этого, что вы хотите?

$(document).ready(function() {
  var originalData = $('textarea').val();
  $('textarea').val('[FONT="Arial"]' + originalData + '[/FONT]');
});
/*unnecessary css, just for asthetics of code snippet*/
textarea{
  width: 300px;
  height: 100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea>Some text that is already in here</textarea>

ОБНОВЛЕНИЕ С ВАНИЛЬНЫМ JAVASCRIPT:

document.getElementById('vB_Editor_001_popup_fontname').setAttribute("onclick", "myWrappingFunction()");

function myWrappingFunction() {
  var originalData = document.getElementById('vB_Editor_001_popup_fontname').value;
  document.getElementById('vB_Editor_001_popup_fontname').value = '[FONT="Arial"]' + originalData + '[/FONT]';                        
}
/*unnecessary css, just for asthetics of code snippet*/
textarea{
  width: 300px;
  height: 100px;
}
<textarea id="vB_Editor_001_popup_fontname">I am the nextarea with id vB_Editor_001_popup_fontname</textarea>

person indubitablee    schedule 23.09.2015
comment
Да, но это, кажется, заменяет весь текст в текстовой области. Я хотел бы оставить текст, который уже присутствует в текстовой области, и просто добавить и добавить этот текст вокруг существующего текста. Имеет ли это смысл? - person Mister Pyrrhuloxia; 23.09.2015
comment
Да!! Это сделало это! Большое спасибо! - person Mister Pyrrhuloxia; 23.09.2015
comment
Знаете ли вы, как изменить $(document).ready(function() {, чтобы javascript выполнялся только при нажатии на такой элемент? id=vB_Editor_001_popup_fontname - person Mister Pyrrhuloxia; 23.09.2015
comment
@MisterPyrrhuloxia: да, обновленный ответ выше только с vanilla js - person indubitablee; 23.09.2015
comment
Поэтому я думаю, что я не хочу, чтобы событие prepend/append происходило до тех пор, пока я не нажму на идентификатор элемента vB_Editor_001_popup_fontname. Я использовал ваш ванильный javascript выше, и, похоже, он этого не сделал. Вместо этого при нажатии на элемент vB_Editor_001_popup_fontname не происходит добавление или добавление. - person Mister Pyrrhuloxia; 23.09.2015
comment
@MisterPyrrhuloxia, отредактировал раздел vanilla js, чтобы учесть изменение области: добавление и добавление при щелчке по текстовой области, а не при загрузке страницы - person indubitablee; 23.09.2015
comment
Так что я просто использовал это, и это не сработало: function myWrappingFunction() { var originalData = document.getElementById('vB_Editor_001_popup_fontname').value; document.getElementById('vB_Editor_001_popup_fontname').value = '[FONT=Arial]' + originalData + '[/FONT]'; } Не похоже, что вы обновили раздел ванильного javascript. Он выглядит так же, как ваш первый ванильный javascript. И спасибо за помощь, кстати! - person Mister Pyrrhuloxia; 23.09.2015
comment
вы поставили функцию onclick на textarea? ‹‹ это часть html. - person indubitablee; 23.09.2015
comment
Извините, что не понял. Что ты имеешь в виду? Я не создаю веб-страницу. Я использую расширение Chrome под названием Tampermonkey, которое изменяет мое взаимодействие с веб-страницей с помощью javascript. Это именно то, что у меня есть в этом скрипте: function myWrappingFunction() { var originalData = document.getElementById('vB_Editor_001_popup_fontname').value; document.getElementById('vB_Editor_001_popup_fontname').value = '[FONT=Ubuntu]' + originalData + '[/FONT]'; } - person Mister Pyrrhuloxia; 23.09.2015
comment
аааа, я понимаю, о чем вы сейчас просите. вам не разрешено трогать html, если это не через javascript, верно? я обновил свой ответ, чтобы удовлетворить ваши потребности. дайте мне знать, если это работает для вас. (мой ответ ранее требовал манипулирования фактическим html, к которому у вас, по-видимому, нет доступа) - person indubitablee; 23.09.2015
comment
Спасибо. Кажется, это не работает. Вот ошибка, которую я получаю в консоли Chrome, когда пытаюсь щелкнуть этот элемент: Uncaught ReferenceError: myWrappingFunction не определен - person Mister Pyrrhuloxia; 23.09.2015
comment
Я думаю, проблема в том, что textarea не имеет значения в теге элемента. Я только что посмотрел полный элемент текстового поля, и вот он: ‹имя текстового поля=идентификатор сообщения=vB_Editor_001_текстовое поле стиль=ширина:100%; высота: 315 пикселей; заполнение: 0; маржа: 0; rows=10 cols=60 tabindex=1 dir=ltr class=ui-autocomplete-input autocomplete=on›[QUOTE=mgbotoe;62176640]Это слишком много для отключения. Будут ли приложения базы местоположений работать нормально? Отправлено с моего Nexus 6 с помощью Tapatalk[/QUOTE] ‹/textarea› - person Mister Pyrrhuloxia; 23.09.2015
comment
textarea всегда имеет атрибут value, как и textbox всегда имеет его. извините, у меня закончились идеи .___. удачи - person indubitablee; 24.09.2015

вы можете внедрить jquery на страницу ( если это еще не часть страницы) и используйте

$(document).ready(function(){
    $('#textAreaID').val('[FONT="Arial"]This is a reply.[/FONT]');
});
person Robert    schedule 23.09.2015