Я использую пользовательские кнопки с летней заметкой на бутстрапе с помощью следующих операций:
- нажмите пользовательскую кнопку (готово)
- открыть модальное окно с содержимым ajax (сделано)
- пользователь выбрал элемент (сделано)
- модальный параметр кнопки обратного вызова и закрыть (сделано)
- функция обратного вызова вставить ссылку в текстовое поле (сделано)
Итак, что не так?
Я хочу получить идентификатор текстовой области в функции обратного вызова, чтобы быть динамичным (см. последнюю функцию).
Вопрос: могу ли я получить идентификатор текстовой области из контекста? Другим способом? (я не нахожу его в console.log(context);)
И вопрос 2: как получить позицию курсора? моя ссылка добавлена на первую позицию.
var summernote = {
run: function(id, type) {
if(type && type === 'full') {
this.full(id);
} else {
this.simple(id);
}
},
simple: function(id) {
// todo
},
full: function(id) {
var summernote_params = { height:300,
lang: 'fr-FR',
toolbar: [
['misc', ['undo', 'redo']],
['style', ['bold', 'italic', 'underline', 'clear']],
['font', ['superscript', 'subscript']],
['para', ['ul', 'ol']],
['mybuttons', ['docimage', 'docdocument']],
],
buttons: {
docimage: summernote.docImage,
docdocument: summernote.docDocument,
},
};
$('#'+id).summernote(summernote_params);
},
docImage: function(context) {
var ui = $.summernote.ui;
var button = ui.button({
contents: '<i class="fa fa-file-image-o"></i>',
tooltip: 'Insert image',
click: function () {
documents.run({filter:'image', callback:[summernote.docImageCallback, context]});
}
});
return button.render();
},
docImageCallback: function(context, doc) {
context.invoke('editor.insertImage', doc.url);
},
docDocument: function(context) {
var ui = $.summernote.ui;
var button = ui.button({
contents: '<i class="fa fa-file-o"></i>',
tooltip: 'Insert file',
click: function () {
documents.run({filter:'document', callback:[summernote.docDocumentCallback, context]});
}
});
return button.render();
},
docDocumentCallback: function(context, doc) {
// here i want to get id dynamically
$('#description').summernote('createLink', {
text: doc.name,
url: doc.url,
newWindow: true
});
},
}
И звонок
<textarea id="description"></textarea>
<script>
summernote.run('description', 'full');
</script>