2016-03-28 111 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行做些什么的正确方法。我能以某种方式将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> 

希望这是有道理的,让我知道是否需要其他任何东西。

编辑:

下面帮助,但它不保存进入textarea的任何新数据的答案。

回答

0

要回答您的问题的一部分,您可以调用TinyMCE初始化函数中的任何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()方法呢?

+0

感谢,但现在我似乎无法得到它发送textarea的当前内容,只有最初那里... – nr1

+0

TinyMCE不会自动更新您键入的'