J'ai un sélecteur de "modèle", qui permet aux gens de changer le "text/html" de la textarea actuelle.
Ainsi, lorsqu'ils changent de modèle, je dois mettre à jour le code Summernote HTML. Je vois la méthode pour (insertText), mais cela ne fonctionne pas pour HTML.
Existe-t-il une solution pour la version HTML?
Je pensais qu'il y avait une solution .code (), mais cela ne semble pas fonctionner? .__ Je reçois une erreur, "Pas une fonction"
Toute aide serait grandement appréciée!
$('.dialogMessageArea').summernote({
height:'230px',
focus:true,
toolbar: [
['style', ['bold', 'italic', 'underline', 'clear']],
['fontsize', ['fontsize']],
['para', ['ul', 'ol', 'paragraph']],
['table', ['table']],
['misc', ['fullscreen','undo','redo']]
]
});
$(document).on('change', '.messageTemplate', function() {
var templateId = $(this).selected().attr('value');
if(templateId) {
$.ajax({
type: "POST",
dataType: "json",
url: '/cont/templates/GetTemplate',
data: {'templateId': templateId},
success: function (data) {
$('.subjectMessage').val(data.results[0].subject);
if(data.results[0].template) {
$('.dialogMessageArea').code(data.results[0].template);
}
},
error: function () {
alert('We were not able to get your template');
}
});
}
});
console.log($('.dialogMessageArea'));
console.log("<b>Welcome</b><h3>hello world</h3>");
Selon l’API ( http://summernote.org/getting-started/#basic-api ),
pour changer la valeur de wysiwyg, vous devez utiliser la fonction summernote avec la chaîne 'code' en premier paramètre et votre contenu en seconde
Comme ça :
$('.dialogMessageArea').summernote('code', data.results[0].template);
.summernote('pasteHTML', '<b>inserted html</b> ');
Cela devrait réellement fonctionner
$('.dialogMessageArea').code('some value you want');
REMARQUE:
HTML dans la fonction code()
doit être une chaîne. Je ne pense pas que cela fonctionnera si vous essayez d'insérer un contenu invalid HTML
.
Essayez de faire ceci :
Créez un div caché puis, dans votre méthode AJAX
success
, essayez d'insérer les données à partir de AJAX puis récupérez-les à l'aide de la fonction text()
de jquery.
<div style="display:none;" id="hidden_div">
success: function (data) {
$('.subjectMessage').val(data.results[0].subject);
if(data.results[0].template) {
$('#hidden_div').html(data.results[0].template);
$('.dialogMessageArea').code($('#hidden_div').text());
}
},
Si vous ne souhaitez pas remplacer tout le contenu de la note, vous pouvez utiliser la commande insertHTML à partir de execCommand WebAPI.
Summernote étant basé sur execCommand WebAPI , nous pouvons utiliser directement ses ressources . Le moyen le plus simple d’ajouter un contenu HTML à la sommation peut donc utiliser le paramètre insertHtml
comme ceci:
document.execCommand('insertHtml', null, '<p>My text <span style="color:red;">here</span></p>');