Tinymce - 创建自定义 javascript 保存按钮

Tinymce - creating a customized javascript save button

所以我试图用另一个提示将内容保存到弹出框中的文件的代码替换下面代码中的“mybutton”功能。 mybutton 是我想要使用的,但是将函数从插入该文本 "It's my button!" 更改为下面代码中的函数。

<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 行。我能否以某种方式让 mybutton 作为单独的代码来处理它,或者它是否必须在 tinymce 本身内?真的不知道,任何建议都会有所帮助。

<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>

希望这是有道理的,如果还需要什么,请告诉我。

编辑:

下面的答案有帮助,但它不会保存输入文本区域的任何新数据。

要回答您的部分问题,您可以从您的 TinyMCE init 中的函数调用属于页面一部分的任何 JavaScript。 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() 方法中做什么?