2016-02-17 68 views
2

我一直在試圖找到一個事件,當用戶以任何方式離開ckeditor窗口或頁面時會觸發,這是因爲我想調用事件內部的save方法以便當用戶確實嘗試離開他們的內容時被保存。我已經插入了條件語句與警報,以測試其是否工作,但到目前爲止,該警報沒有被調用這標誌着我目前使用的事件不是一個正確當用戶離開ckeditor或頁面時觸發事件

這裏是我的代碼塊:

$(window).on('beforeunload', function() { 
    updateBlockByName(blockname, escape(newhtml), 1, blockid, disableBlogComment); 
    if (updateBlockByName) { 
     alert('unload save test'); 
    } 
}); 

任何幫助是極大的讚賞

回答

2

其實beforeunload是相當嚴重破損(可能是由設計)在閃爍,它不處理alert或其他模式對話框。如果你想顯示一個消息,你可以使用return

$(window).on('beforeunload', function() { 
    return 'Message for the user'; 
} 

它會顯示一個confirm與「離開頁」和「留在網頁」按鈕對話框。

此外,還有unload事件,但它與beforeunload一樣不可靠。而且它們在移動設備上都不能很好地工作。

也許一個好主意不是依靠檢測頁面的卸載,而是通過例如檢測到可見性的變化。 pagehide事件。它還將處理用戶在後臺放置頁面並簡單忘記的所有情況。

關於pagehide,beforeunload,unload和其他類似事件的非常詳細的文章是available on Ilya Grigorik's site

如果你想檢測只離開編輯器,你可能只聽CKEditor's blur event。當用戶將光標移到編輯器外部時會觸發它。

相關問題