edit.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // "use strict";
  2. function do_stop_exit() {
  3. window.onbeforeunload = function() {
  4. do_insert_edit_data();
  5. let data = document.getElementById('opennamu_js_edit_textarea').value;
  6. let origin = document.getElementById('opennamu_js_edit_origin').value;
  7. if(data !== origin) {
  8. return '';
  9. }
  10. }
  11. }
  12. function do_insert_edit_data() {
  13. do_monaco_to_textarea();
  14. let get_data = document.getElementById('opennamu_js_edit_textarea_view').value;
  15. document.getElementById('opennamu_js_edit_textarea').value = get_data;
  16. }
  17. function do_stop_exit_release() {
  18. window.onbeforeunload = function () {}
  19. }
  20. function do_monaco_to_textarea() {
  21. try {
  22. document.getElementById('opennamu_js_edit_textarea_view').value = window.editor.getValue();
  23. } catch(e) {}
  24. }
  25. function do_insert_preview() {
  26. let s_data = new FormData();
  27. s_data.append('data', document.getElementById('opennamu_js_edit_textarea').value);
  28. let xhr = new XMLHttpRequest();
  29. xhr.open("POST", "/api/w/Test");
  30. xhr.send(s_data);
  31. xhr.onreadystatechange = function() {
  32. if(xhr.readyState === 4 && xhr.status === 200) {
  33. let o_p_data = JSON.parse(xhr.responseText);
  34. console.log(o_p_data);
  35. document.getElementById('opennamu_js_preview_area').innerHTML = o_p_data['data'];
  36. eval(o_p_data['js_data'])
  37. }
  38. }
  39. }
  40. if(document.getElementById('opennamu_js_save')) {
  41. do_stop_exit();
  42. document.getElementById('opennamu_js_save').onclick = function() {
  43. do_insert_edit_data();
  44. do_stop_exit_release();
  45. };
  46. document.getElementById('opennamu_js_preview').onclick = function() {
  47. do_insert_edit_data();
  48. do_insert_preview();
  49. };
  50. }