2014-11-10 2 views
0

Я могу изменить HTML, отображаемый в TinyMCE, нажав «restore». Теперь я хочу вернуть HTML в orignal HTML, нажав «cancel». Для жизни я не могу понять, почему мой подход не работает (он отображает недавно измененный HTML). Как это делается. См. http://jsfiddle.net/3pn3x4zj/, который дублируется ниже. Спасибо.Изменение TinyMCE HTML после включения плагина

JavaScript

tinymce.init({ 
    selector: '#tinymce', 
    setup: function (ed) { 
     ed.on('init', function (e) { 
      e.target.hide(); 
     }); 
    } 
}); 

$(function() { 

    $('#cancel').hide(); 

    $('#restore').click(function() { 
     console.log('Save old HTML and put new HTML from GET request in DIV'); 
     $('#cancel').show(); 
     $('#restore').hide(); 
     $(this).parent().data('oldHTML', $('#tinymce').html()); 
     var newHTMLgottenFromGetRequest = '<p>Bar Bar Bar</p>' 
     $('#tinymce').html(newHTMLgottenFromGetRequest); 
     tinymce.get('tinymce').show(); 
    }); 

    $('#cancel').click(function() { 
     console.log('Put back original HTML'); 
     $('#cancel').hide(); 
     $('#restore').show(); 
     $('#tinymce').html($(this).parent().data('oldHTML')); 
     tinymce.get('tinymce').hide(); 
    }); 

}); 

HTML

<div id="tinymce"> 
    <p>Foo Foo Foo</p> 
</div> 
<button id="restore">restore</button> 
<button id="cancel">cancel</button> 

ответ

1

Попробуйте обратить вспять эти строки в случае #cancel клик:

$('#tinymce').html($(this).parent().data('oldHTML')); 
tinymce.get('tinymce').hide(); 

становится

tinymce.get('tinymce').hide(); 
$('#tinymce').html($(this).parent().data('oldHTML')); 
+0

Ничего себе, это было легко! См. Http://jsfiddle.net/3pn3x4zj/4/ для обновленного сценария. Разум, дающий мне знать, «почему» это работает? Спасибо – user1032531

+0

@ user1032531 Не совсем уверен. Я предполагаю, что это связано с функцией 'get' TinyMCE, но я не знаю больше, чем это – jasonscript

Смежные вопросы