tinyMCE kullanan bir uygulamam var. Bu sayfada, kullanıcı bir mesaj oluşturacak ve başka bir sayfada önizleyecektir (tinyMCE'nin önizlemesini kullanmadan). Şu anda kullanıcı tinyMCE UI'sini tıkladığında içeriği kaydeden bir AJAX işlevine sahibim. Sorun şu ki, aynı sayfada farklı bağlantılar var, bazen bir kullanıcı bağlantıyı tıklattığında, AJAX işlevi yeniden yönlendirmeden önce içeriği kaydetmeyi başaramaz, dolayısıyla boş bir önizleme veya kaydedilmemiş mesaj ortaya çıkar.Bir AJAX işlemini tamamlamadan önce tüm bağlantıların nasıl yönlendirileceğini engelleme
<div>
<textarea id='msg'></textarea>
<a id='preview'>Preview</a>
<a id='other_page'>Other Page</a>
<a id='another_page'>Another Page</a>
</div>
İşte JavaScript işleyicileri ve işlevleri.
<script>
// INITIALIZE TINYMCE
tinyMCE.init({
// SAVE CONTENT ON BLUR
editor.on('blur', function() { save_message(this); });
})
function save_message(){
var msg= tinyMCE.get('msg ').getContent();
$.ajax({
statusCode : { 404: function(){alert('Not Found');} },
type : 'post',
data : {msg:msg},
url : '<script_that_handles_save>',
success : function(res){ // DO SOMETHING }
});
}
// WHEN PREVIEW IS CLICKED
$('a.preview).click(function(){
save_message();
});
$('a.other_page).click(function(){
save_message();
});
$('a.another_page).click(function(){
save_message();
});
</script>
Üzgünüm, ifadeler karıştı biraz değilim. Varsayılan bağlantı bağlantı işlevine güvenmek yerine $ .ajax işlevinin başarı işleyicisinde sadece JS yönlendirmesi kullanmayı denediniz mi? – colonelsanders