2016-03-28 81 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不會自動更新您鍵入的'