blockingunload.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // TODO change message!
  2. TrexMessage.addMsg({
  3. '@canvas.unload.message': "작성하신 내용이 저장되지 않았습니다. 페이지를 떠나시겠습니까?",
  4. '@canvas.unload.message.at.modify': "작성하신 내용이 저장되지 않았습니다. 페이지를 떠나시겠습니까?"
  5. });
  6. Trex.install("editor.isDisableUnloadHandler & editor.setDisableUnloadHandler", function(editor) {
  7. var _beforeUnloadCheck = _TRUE;
  8. editor.isDisableUnloadHandler = function() {
  9. return _beforeUnloadCheck;
  10. };
  11. editor.setDisableUnloadHandler = function() {
  12. _beforeUnloadCheck = _FALSE;
  13. };
  14. editor.setEnableUnloadHandler = function() {
  15. _beforeUnloadCheck = _TRUE;
  16. };
  17. });
  18. Trex.module("observing beforeunload event",
  19. function(editor, toolbar, sidebar, canvas, config) {
  20. var _evConfig = config.events;
  21. var _validator = new Trex.Validator();
  22. $tx.observe(window, 'beforeunload', function(ev) {
  23. if (editor.isDisableUnloadHandler()) {
  24. if (_evConfig.preventUnload) {
  25. canvas.fireJobs(Trex.Ev.__CANVAS_BEFORE_UNLOAD);
  26. if (_validator.exists(canvas.getContent())) { //NOTE: 작성한 글이 있을 경우에만 확인
  27. ev.returnValue = TXMSG("@canvas.unload.message");
  28. return TXMSG("@canvas.unload.message");
  29. }
  30. }
  31. }
  32. }, _FALSE);
  33. }
  34. );