2016-03-28 2 views
1

Итак, я пытаюсь заменить код «mybutton's» на код ниже другим кодом, который предлагает сохранить содержимое в файл во всплывающем окне. mybutton - это то, что я хочу использовать, но изменяю функцию от вставки этого текста «Это моя кнопка!». к функции в коде далее ниже.Tinymce - создание настраиваемой кнопки сохранения javascript

<script> 
tinymce.init({ 
    selector: 'textarea', 
    toolbar: 'mybutton', 
    setup: function (editor) { 
    editor.addButton('mybutton', { 
     text: 'My button', 
     icon: false, 
     onclick: function() { 
     editor.insertContent('&nbsp;<b>It\'s my button!</b>&nbsp;'); 
     } 
    }); 
    }, 
    content_css: [ 
    '//fast.fonts.net/cssapi/e6dc9b99-64fe-4292-ad98-6974f93cd2a2.css', 
    '//www.tinymce.com/css/codepen.min.css' 
    ] 
}); 
</script> 

Я не уверен, что правильный способ заменить MyButton функции к функции ниже, или что делать с document.getElement линии либо. Могу ли я каким-либо образом работать с этим типом в качестве отдельного кода, или он должен быть в пределах самого тинима? На самом деле, никакой идеи, ни один совет не помог бы.

<script type="text/javascript"> 
function saveFileAs() { 
    if (promptFilename = prompt("Save as ADD EXTENSION", "")) { 
     var textBlob = new Blob([document.getElementById("textarea").value], {type:'text/plain'}); 
     var downloadLink = document.createElement("a"); 
     downloadLink.download = promptFilename; 
     downloadLink.innerHTML = "Download File"; 
     downloadLink.href = window.URL.createObjectURL(textBlob); 
     downloadLink.click(); 
    } 
} 

document.getElementById("mybutton").onclick = saveFileAs; 
</script> 

Надеюсь, это имеет смысл, дайте мне знать, если что-то еще необходимо.

EDIT:

Ответ ниже помогли, но это не спасает какие-либо новые данные, введенные в текстовое поле.

ответ

0

Чтобы ответить на часть вашего вопроса, вы можете вызвать любой JavaScript, который является частью страницы, из функции в вашем TinyMCE init. Init - это просто объект JavaScript и может взаимодействовать с другим JavaScript на странице. Предполагая, что функция saveFileAs() загружается на страницу, которую вы могли бы сделать это:

tinymce.init({ 
    selector: 'textarea', 
    toolbar: 'mybutton', 
    setup: function (editor) { 
    editor.addButton('mybutton', { 
     text: 'My button', 
     icon: false, 
     onclick: function (editor) { 
     saveFileAs(editor); 
     } 
    }); 
    } 
}); 

Что вы пытаетесь сделать в методе saveFileAs()?

+0

Спасибо, что работает, но теперь я не могу заставить его отправлять текущее содержимое текстового поля, только то, что изначально было там ... – nr1

+0

TinyMCE автоматически не обновляет '' по мере ввода. Вы можете использовать 'tinymce.triggerSave()', который заставит TinyMCE обновлять '