tinyMCEを使用するアプリケーションがあります。このページでは、ユーザーがメッセージを作成し、別のページでプレビューします(tinyMCEのプレビューは使用しません)。私は現在、ユーザーがtinyMCE UIから離れてクリックするとコンテンツを保存するAJAX関数を持っています。問題は、この同じページにさまざまな種類のリンクがあることです。ユーザーがリンクをクリックすると、AJAX関数がリダイレクトする前にコンテンツを保存できないため、空白のプレビューや保存されていないメッセージが表示されます。AJAXプロセスを完了する前にすべてのリンクがリダイレクトされないようにする方法
<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>
ここにJavaScriptのハンドラと関数があります。
<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>
申し訳ありませんが、私は言葉に少し混乱しています。デフォルトのアンカーリンク機能に頼るのではなく、あなたの$ .ajax関数の成功ハンドラでJSリダイレクトを使ってみましたか? – colonelsanders