Вставьте текст в wysiwyg из раскрывающегося списка

Есть ли способ вставить тексты в начальную загрузку wysiwyg с помощью jquery? Кстати, я использовал bootstrap-wysihtml5 с этой страницы http://jhollingworth.github.io/bootstrap-wysihtml5/ Тексты на самом деле являются шаблоном из раскрывающегося списка, тогда выбранное значение onchange должно быть вставлено в wysisyg.

Я пробовал этот код, но он вставляет тексты только в скрытую текстовую область, а не в wysiwyg.

$(document).ready(function(e) {
    $("#template").change(function(){
        var template = $("#template").val();
        if(template != '') {
            $('.textarea, .wysihtml5-sandbox').append(template);
        }
    });
});

person mark yorky    schedule 05.09.2013    source источник


Ответы (1)


Вы не можете просто получить доступ к textarea из DOM содержащей страницы, поскольку фактический редактор WYSIWYG находится в iFrame с .wysihtml5-sandbox. Таким образом, чтобы получить доступ к DOM iFrame и изменить его, нам нужно сначала получить доступ к DOM iFrame:

  $('.wysihtml5-sandbox').contents() 
  //Now we have the iFrame DOM to apply selectors to

  $('.textarea', $('.wysihtml5-sandbox').contents())
  //Now we have access to the textarea which contains the editor's current text

  $('.textarea', $('.wysihtml5-sandbox').contents()).append('Hello World!')
  //Now we have appended content to the editor view, the original goal 

Дополнительные вещи:

$('.textarea', $('.wysihtml5-sandbox').contents()).removeClass('placeholder')
//Stops the text from being formatted as a placeholder (i.e. grayed out)
$('.textarea', $('.wysihtml5-sandbox').contents()).empty()
//Remove the existing placeholder text by emptying the textarea content
person sushain97    schedule 05.09.2013
comment
Однако при загрузке страницы и выборе шаблона из раскрывающегося списка вставленный текст/шаблон окрашивался в серый цвет, а заполнитель СООБЩЕНИЕ не удалялся. Есть идеи, как это исправить? большое спасибо @sushain97 - person mark yorky; 06.09.2013
comment
@markyorky как насчет $('.textarea', $('.wysihtml5-sandbox').contents()).removeClass('placeholder')? - person sushain97; 06.09.2013
comment
Я пробовал это, но это не сработало. Есть ли другое решение, сэр? Благодарность! - person mark yorky; 06.09.2013
comment
заполнитель для wysiwyg выглядит следующим образом: ‹iframe›‹body›MESSAGE‹/body›‹/iframe›, как очистить слово MESSAGE? - person mark yorky; 06.09.2013
comment
removeClass предотвратит форматирование текста в качестве заполнителя (т. е. будет выделен серым цветом) $('.textarea', $('.wysihtml5-sandbox').contents()).empty() удалит существующий текст-заполнитель - person sushain97; 06.09.2013