Javascript 如何保存编辑器的内容,而不是整个HTML页面?

Javascript 如何保存编辑器的内容,而不是整个HTML页面?,javascript,codemirror,Javascript,Codemirror,到目前为止,我有一个由和codemirr.fromTextArea组成的编辑器 我可以编写代码,它工作得非常出色,但当我按CTRL+S时,它会显示一个保存HTML页面的对话框。我希望它能让我保存(下载)我输入的代码 我已成功绑定到save命令,如下所示: CodeMirror.commands.save = function(editor) { console.log("Yay!"); }; 事实上,当我点击CTRL+S时,控制台上会显示“耶!”并且不会显示任何对话框 现在,如何创建一

到目前为止,我有一个由
codemirr.fromTextArea
组成的编辑器

我可以编写代码,它工作得非常出色,但当我按CTRL+S时,它会显示一个保存HTML页面的对话框。我希望它能让我保存(下载)我输入的代码

我已成功绑定到save命令,如下所示:

CodeMirror.commands.save = function(editor) {
    console.log("Yay!");
};
事实上,当我点击CTRL+S时,控制台上会显示“耶!”并且不会显示任何对话框


现在,如何创建一个保存对话框,只保存编辑器实例中的代码?

假设您这样初始化CodeMirror

var editor = CodeMirror.fromTextArea(document.getElementById('...'))...
然后,您可以根据需要调整以下示例函数:

function saveTextAsFile() {
  var textToWrite = editor.getValue();
  var textFileAsBlob = new Blob([textToWrite], {
    type: "text/plain;charset=utf-8"
  });
  var fileNameToSaveAs = "myfile.txt";

  var downloadLink = document.createElement("a");
  downloadLink.download = fileNameToSaveAs;
  downloadLink.innerHTML = "Download File";
  if (window.webkitURL != null) {
    // Chrome allows the link to be clicked
    // without actually adding it to the DOM.
    downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob);
  } else {
    // Firefox requires the link to be added to the DOM
    // before it can be clicked.
    downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
    downloadLink.onclick = destroyClickedElement;
    downloadLink.style.display = "none";
    document.body.appendChild(downloadLink);
  }

  downloadLink.click();
}

祝你好运

也许这有帮助:很好的解决方案。适用于Firefox、Chrome和adblock。我试了一下,它也很管用。我在IE11上进行了测试,但它根本不起作用。